java - Hibernate 可以将列的子集映射到内部子 Pojo 中

标签 java sql hibernate jpa hibernate-mapping

我有以下 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/

相关文章:

sql-server - ORM中如何处理历史表?

java - 如何模拟返回模拟对象的方法

mysql - 使用 where 子句获取所有结果

mongodb - Grails Audit插件不适用于MongoDB

Hibernate Envers 修订之间的增量

sql - 哪个 RDBMS 具有最丰富的 ANSI-SQL 超集?

javac *.java Windows 命令行错误 : * as illegal chacter

java - Android 在启动应用程序时出现运行时错误

java - map 的 BatchedTooManyRowsAffectedException

sql - 如何在 SQL Server 中重新抛出相同的异常