Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法在Hibernate中加载惰性字段_Java_Jpa_Lazy Loading - Fatal编程技术网

Java 方法在Hibernate中加载惰性字段

Java 方法在Hibernate中加载惰性字段,java,jpa,lazy-loading,Java,Jpa,Lazy Loading,冬眠。我有一个懒惰的领域类。我从db中获取一个实体而不加载它,但是当我使用entity.toString()时,这个字段是由JPA加载的。如何避免这种行为?如果某个字段为null,我只想得到null。如果您使用Hibernate,您可以检查该字段是否未初始化: Hibernate.isInitialized(myproperty) 在toString()实现中使用此方法。如果使用Hibernate,可以检查字段是否未初始化: Hibernate.isInitialized(myproperty

冬眠。我有一个懒惰的领域类。我从db中获取一个实体而不加载它,但是当我使用entity.toString()时,这个字段是由JPA加载的。如何避免这种行为?如果某个字段为null,我只想得到null。

如果您使用Hibernate,您可以检查该字段是否未初始化:

Hibernate.isInitialized(myproperty)

在toString()实现中使用此方法。

如果使用Hibernate,可以检查字段是否未初始化:

Hibernate.isInitialized(myproperty)


在toString()实现中使用此方法。

我认为这是因为您重新定义了toString()方法并包含了惰性字段。我有一段令人震惊的历史。您需要在没有这些字段的情况下重新定义toString()方法。

我认为这是因为您重新定义了toString()方法并包含了惰性字段。我有一段令人震惊的历史。您需要在没有这些字段的情况下重新定义toString()方法。

是否
toString()
访问该字段?是。如果字段为null,我希望得到null。
String.valueOf(field)
将为您提供null。我的意思是,从db加载实体后,如果没有惰性字段,我希望使用entity.toString()并得到null。但jpa正在加载它。我理解这是默认行为。但我想避免它。“jpa”没有任何作用;你的jpa提供商有,哪一个?。并且仅当对象仍处于“托管”状态时。
toString()
是否访问该字段?是。如果字段为null,我希望得到null。
String.valueOf(field)
将为您提供null。我的意思是,从db加载实体后,如果没有惰性字段,我希望使用entity.toString()并得到null。但jpa正在加载它。我理解这是默认行为。但我想避免它。“jpa”没有任何作用;你的jpa提供商有,哪一个?。只有当对象仍然处于“管理”状态时。当然,但是>70%的用户使用Hibernate,所以我假设情况也是如此。对。我正在使用Hibernate。这正是我想要的。非常感谢你。最后一个问题。您认为,在entity.toString()方法中使用Hibernate.isInitialized(myproperty)是一种正常的做法吗?否。并且您的案例在未初始化时显示null是错误的信息。您应该记录类似“未初始化”的内容,因为null表示未设置属性(例如数据库中的null)。对不起,我不清楚。当您说“不”时,您的意思是最好不要在entity.toString()中使用它?或者你的意思是这是正常的,但我应该只记录“未初始化”而不是null?两者都有。为什么需要toString()?当然可以,但超过70%的用户使用Hibernate,所以我认为情况也可能如此。对。我正在使用Hibernate。这正是我想要的。非常感谢你。最后一个问题。您认为,在entity.toString()方法中使用Hibernate.isInitialized(myproperty)是一种正常的做法吗?否。并且您的案例在未初始化时显示null是错误的信息。您应该记录类似“未初始化”的内容,因为null表示未设置属性(例如数据库中的null)。对不起,我不清楚。当您说“不”时,您的意思是最好不要在entity.toString()中使用它?或者你的意思是这是正常的,但我应该只记录“未初始化”而不是null?两者都有。为什么需要使用字符串()?