我有两个实体:
@Entity
@Table(name = "animals")
public class Animal extends BaseEntity {
private String nickname;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "species_id", nullable = false)
private Species species;
}
和
@Entity
@Table(name = "species")
public class Species extends BaseEntity {
private String scientificName;
private Integer animalsPerHouse;
}
如何以Animal
字段获取Species
,例如scientificName
?如何告诉Hibernate我只需要嵌套实体的特定字段?
渴望的动物:
{
"id": 1,
"nickname": "Locuroumee",
"species": {
"id": 161130,
"scientificName": "Anguilla bicolor",
}
实际动物:
{
"id": 1,
"nickname": "Locuroumee",
"species": {
"id": 161130,
"scientificName": "Anguilla bicolor",
"animalsPerHouse": 4
}
我已经花了很多时间进行投影,别名,但它没有帮助
答案 0 :(得分:0)
此类任务有实体图表。
Dynamic fetching via JPA entity graph
JPA 2.1 Entity Graph – Part 1: Named entity graphs
JPA 2.1 Entity Graph – Part 2: Define lazy/eager loading at runtime
但是,看起来,Hibernate不支持部分字段加载,与EclipseLink相对。
您可以尝试使用自定义结果转换器: How to transform a flat result set using Hibernate