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
Hibernate 部分加载作为属性或集合的子实体_Hibernate_Jpa_Lazy Loading - Fatal编程技术网

Hibernate 部分加载作为属性或集合的子实体

Hibernate 部分加载作为属性或集合的子实体,hibernate,jpa,lazy-loading,Hibernate,Jpa,Lazy Loading,假设我有以下两个实体: @Entity public class Pet { private String name; private Integer age; } @Entity public class Person { @ManyToOne(fetch = FetchType.LAZY) private Pet pet; // and ten additional attributes } 我经常得到具有许多属性的实体,通常也在集合中,因此是一对多关系。但

假设我有以下两个实体:

@Entity
public class Pet
{
   private String name;
   private Integer age;
}

@Entity
public class Person
{
   @ManyToOne(fetch = FetchType.LAZY)
   private Pet pet;
   // and ten additional attributes
}
我经常得到具有许多属性的实体,通常也在集合中,因此是一对多关系。但在大多数情况下,我只需要在加载父实体(在本例中为Person)时显示一个属性

因此,我们的想法是不为单个属性和属性加载整个子实体 以节省性能

是否可以只使用
name
加载
Person
及其
Pet
,而不使用JPA或至少使用Hibernate加载其他11个属性

编辑:

我找到了一些答案,但不幸的是,这些答案并不能解决我的问题

欢迎进一步输入。

您正在寻找JPA字段注释

但是,不能保证特定的持久性提供者会遵循JPA的建议

惰性策略是对持久性提供程序运行时的提示


或者,您可以将
宠物的延迟加载内容提取到单独的实体中,并使用
@OneToOne(fetch=FetchType.lazy)
注释

不幸的是,Hibernate不支持它…:(您可以考虑我建议的第二个选项,即将您的惰性数据提取到单独的实体中。