首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Spring Neo4J @Fetch问题与杰克逊序列化

Spring Neo4J @Fetch问题与杰克逊序列化
EN

Stack Overflow用户
提问于 2015-04-23 06:17:09
回答 1查看 134关注 0票数 0

我正在试图弄清楚为什么一个由250个对象组成的集合的Jackson JSON序列化需要40秒的时间,我认为我已经将其缩小到SDN延迟加载。我正在使用@Fetch,但它似乎仍然要求数据库提供集合中每个节点的每个属性的委托。请忽略任何打字,因为我必须手动输入,因为复制粘贴不是一个选项。请放心,类将按预期进行编译。被序列化的(简化的)类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@NodeEntity
public class NodeWithDelegate {

  @RelatedTo(type="REL_NAME", direction=Direction.OUTGOING)
  @Fetch private DelegateNode delegate;

  private DelegateNode getInitializedDelegate() {
    if (delegate == null) {
      delegate = new DelegateNode();
    }
    return delegate;
  }

  public String getDelegateAttribute1() {
    return delegate == null ? null : delegate.getAttribute1();
  }

  public void setDelegateAttribute1(String attribute1) {
    getInitializedDelegate().setAttribute1(attribute1);
  }

  .... 

  public String getDelegateAttribute15() {
    return delegate == null ? null : delegate.getAttribute15();
  }

  public void setDelegateAttribute15(String attribute15) {
    getInitializedDelegate().setAttribute15(attribute15);
  }
}

DelegateNode类正是您所期望的,只是包含15个字符串或整数或布尔属性的简单@NodeEntity POJO。

所以有两个问题:

  1. 我怎样才能确定一个对象是否被急切地加载呢?我用的是月食。
  2. 为了调试目的,如果对象都被急切地加载,并且我在从数据库中获取集合和调用所有委托getter的序列化程序之间放置了一个断点,并且在暂停关闭数据库时,它应该工作吗?如果所有对象都被急切地加载,那么此时对象是否需要与数据库对话呢?

我想我应该提到我正在为neo4j使用rest。

事先非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-04-28 23:44:48

我假设您使用的是3.x版本的Spring Neo4j。

这个版本对于REST并不是很优化。如果您启用了密码查询的日志记录,您将看到很多。Log4j示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j.category.org.springframework.data.neo4j.support.query=DEBUG

您可以使用自定义密码查询和使用@QueryResult注释映射结果来解决这一限制。

  1. 使用日志记录,您应该会看到您的对象正在加载。
  2. 除非DelegateNode本身有“懒惰”之处,否则应该如此。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29826177

复制
相关文章
spring boot 配置属性大全(1)
1.核心属性 键 默认值 描述 debug false 启用调试日志。 info.* 要添加到信息端点的任意属性。 logging.config 日志记录配置文件的位置。例如,用于logback的`classpath:logback.xml`。 logging.exception-conversion-word %wEx 记录异常时使用的转换字。 logging.file.clean-history-on-start false 是否在启动时清除存档日志文件。仅默认登录设置支持。 logging.fi
gemron的空间
2020/02/24
3.5K0
spring boot 配置属性大全(1)
Ajax 之战:XMLHttpRequest 与 Fetch API
Ajax 是大多数 web 应用程序背后的核心技术,它允许页面向 web 服务发出异步请求,因此数据可以不经过页面往返服务器无刷新显示数据。
深度学习与Python
2022/06/13
2.4K0
Ajax 之战:XMLHttpRequest 与 Fetch API
Fetch Size 与 JDBC 内存管理
接触到 JDBC 的 Fetch Size 这个属性缘起一个性能问题,项目中需要将一个有千万级数据量的表中的记录导出到文件中去。按照正常的路数,先初始化连接;接着写好 SQL 语句,比如SELECT * FROM DIM_USERS;然后启动查询,拿到 ResultSet,最后遍历 ResultSet 将每行记录输出到文件中去。可在接下来的测试中,发现性能并不理想,在表中数据量小的时候,执行速度尚可接受,可是在进行大数据量压力测试的时候,发现代码往往要执行40分钟以上,这在实际生产环境上是万万不可接受的。
Allen Cheng
2018/09/10
3.1K0
TensorFlow中的feed与fetch
TensorFlow中的feed与fetch 一:占位符(placeholder)与feed 当我们构建一个模型的时候,有时候我们需要在运行时候输入一些初始数据,这个时候定义模型数据输入在tensorflow中就是用placeholder(占位符)来完成。它的定义如下: def placeholder(dtype, shape=None, name=None): 其中dtype表示数据类型,shape表示维度,name表示名称。它支持单个数值与任意维度的数组输入。 1. 单个数值占位符定义 a = tf.
OpenCV学堂
2018/04/04
1.9K0
TensorFlow中的feed与fetch
spring boot + mybatis 访问 neo4j
之前有通过rest的风格去访问,但是每次需要访问时候将statement一并加入header中去数据库执行,方式简单、且思路清晰,但是不便于形成模板调用,固采用mybaits来集成。
MickyInvQ
2020/09/27
2.1K0
spring boot + mybatis 访问 neo4j
git pull 与 git fetch 的区别
今天恰逢一个实习生不清楚在使用git发生冲突时如何去处理,所以就给他说了git在工作上的一般使用以及拉取与获取的区别,然后自己也温习了一下。
薛定喵君
2020/12/28
2.5K0
git pull 与 git fetch 的区别
【Neo4j】:备份与还原
Neo4j 自带的管理工具 neo4j-admin,提供了信息查看、备份、还原等功能。
WEBJ2EE
2021/11/10
1.2K0
Neo4J:limit与skip
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
程裕强
2019/10/22
7210
Neo4J:limit与skip
Neo4j 与 Cypher 基础
Neo4j 是用 Java 实现的开源 NoSQL 图数据库。从2003年开始开发,2007年正式发布第一版,其源码托管于 GitHub。
浪漫主义狗
2023/09/26
7070
Neo4j 与 Cypher 基础
【Spring Boot实战与进阶】Redis配置Fastjson进行序列化和反序列化
  FastJson是阿里开源的一个高性能的JSON框架,FastJson数据处理速度快,无论序列化(把JavaBean对象转化成Json格式的字符串)和反序列化(把JSON格式的字符串转化为Java Bean对象),都是当之无愧的fast;功能强大(支持普通JDK类,包括javaBean, Collection, Date 或者enum);零依赖(没有依赖其他的任何类库)。
程序员云帆哥
2022/05/12
1.9K1
前端数据获取之Ajax与Fetch (一)
Ajax,读作”阿贾克斯“,这个是每一个web开发者必掌握的一门技术,现在咱们打开一个网页,页面上数据多多少少都会有它的一些参与,来获取数据,但也并不是所有的数据都是通过它来取到的。
用户1462769
2019/08/12
1.8K0
前端数据获取之Ajax与Fetch (一)
Java 序列化问题
如果不指定 serialVersionUID ,当你添加或者修改类中的任何字段时,已序列化类将无法恢复。因为新类和旧序列化对象生成的serialVersionUID 不同,序列化的过程将依赖正确的序列化对象恢复状态的。否则会报错 java.io.InvalidClassException 。
王小明_HIT
2020/03/25
5300
序列化与反序列化
现今的后台服务大多是微服务架构,每个服务按照业务进行拆分,实现了服务之间的解耦,而服务之间要记性接口调用实现,服务支架要进行数据对象共享,就要把服务对象转成二进制流,通过网路传输,传送到对方服务,在把二进制流转成对象这就是是序列化,反序列化。
小土豆Yuki
2020/06/15
1.6K0
Protostuff序列化问题
  最近在开发中遇到一个Protostuff序列化问题,在这记录一下问题的根源;分析一下Protostuff序列化和反序列化原理;以及怎么样避免改bug。
GreizLiao
2019/09/23
2.2K0
Background Fetch
Background Fetch 是iOS7带来的非常Cool的新特性,开启Background Fetch的App会被系统在合适的时机执行后台任务的代码。比如这个场景:你每天晚上10点会通过自己的RSS阅读器App来阅读,系统可能会在10点之前执行App中设定的下载RSS最新资源的任务,当你打开RSS阅读器App的时候就显示出最新的内容。实现Background Fetch的步骤也是非常的简单,下面就来看一下。
JoeyBlue
2021/09/07
2.6K0
序列化与反序列化
序列化(pickling)   把变量从内存中变成可存储或传输的过程 反序列化(unpickling)   把变量内容从序列化的对象重新读到内存里的过程
py3study
2020/01/17
7410
fix bug:解决在Spring项目实践中LocalDateTime无法序列化反序列化的问题
JDK 8发行已久,其中不乏一些在实际编码过程中是十分好用的新特性,如JDK 8中的时间特性亦是如此,但是在Spring企业开发中,往往会遇到LocalDateTime无法序列化/反序列化的问题,原因是LocalDateTime类型的值在当前的JSON工具中并没有特定的模式去解析该类型。那么解决该问题最简单的方式是使用@JsonFormat固定一个pattern即可。当时这个注解存在的弊端即为每一个LocalDateTime类型的参数上都需要一个注解,所以当代码量较大时,工作量就会变大,并且容易因疏忽而出现的Bug,那么使用全局就显得简明很多。
关忆北.
2021/12/07
2.8K0
fix bug:解决在Spring项目实践中LocalDateTime无法序列化反序列化的问题
前端 fetch 通信
作者:villainthr 随着前端异步的发展, XHR 这种耦合方式的书写不利于前端异步的 Promise 回调。而且,写起来也是很复杂.。fetch API 本来是在 SW(ServiceWork
腾讯IVWEB团队
2017/04/27
2.8K0
初探序列化与反序列化
在写程序尤其是写网站的时候,经常会构造类,并且有时候会将实例化的类作为变量进行传输。
偏有宸机
2020/11/04
8160
初探序列化与反序列化
Java 序列化与反序列化
1、什么是序列化?为什么要序列化?     Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。     我们都知道,在进行浏览器访问的时候,我们看到的文本、图片、音频、视频等都是通过二进制序列进行传输的,那么如果我们需要将Java对象进行传输的时候,是不是也应该先将对象进行序列化?答案是肯定的,我们需要先将Java对象进行序列化,然后通过网络,IO进行传输,当到达目的地之后,再进行反序列化获取到我们想要的对象,最后完成通信。 2、如何实现序列化 2.1、使用
九灵
2018/03/09
1.3K0

相似问题

Spring杰克逊自动序列化?

21

杰克逊与Spring WebFlux

11

Spring杰克逊序列化抛出NullPointer异常

13

CommonsMultipartFile的杰克逊序列化问题

20

Neo4j RelationshipEntities和循环JSON与Spring Data Rest的序列化问题

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文