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不支持它…:(您可以考虑我建议的第二个选项,即将您的惰性数据提取到单独的实体中。