我有以下 Pojo:
@Entity
@Table(name = "USER")
class User {
@Id
private long id;
private String name;
private int age;
private long lastVisited;
private long lastPlayed;
private long lastPayed;
...
}
如果可能的话,我想以某种方式映射 Pojo,如下所示:
@Entity
@Table(name = "USER")
class User {
@Id
private long id;
private String name;
private int age;
@Embedded
private UserStatistics statistics;
...
}
@Embeddable
class UserStatistics {
private long lastVisited;
private long lastPlayed;
private long lastPayed;
}
但是,我不想将统计信息列移动到新的
USER_STATISTICS
表并进行 @OneToOne
映射。
我可以在这里使用 Hibernate 技巧吗? 谢谢!
最佳答案
你所做的已经足够了,Hibernate 不需要你为表中的所有列定义字段。相反,所有非 transient 字段都应反射(reflect)为相应表中的列,或者使用 @Column
注释中定义的名称,或者使用 hibernate 配置中使用的命名约定生成。
您提供的示例已经足够并且可以工作,但我不推荐它,因为您可以有两个实体同时映射单行。
关于java - Hibernate 可以将列的子集映射到内部子 Pojo 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58936715/