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

Can Hibernate map subset of columns into an internal sub Pojo

我有以下 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 table 并进行 @OneToOne 映射。

这里有我可以使用的 Hibernate 技巧吗? 谢谢!

您所做的已经足够了,Hibernate 不需要您为 table 中的所有列定义字段。相反,所有非瞬态字段都应反映为相应 table 中的列,要么使用 @Column 注释中定义的名称,要么使用休眠配置中使用的命名约定生成。

您提供的示例已经足够并且可以运行,但我不推荐它,因为您可以同时让两个实体映射单行。