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
注释中定义的名称,要么使用休眠配置中使用的命名约定生成。
您提供的示例已经足够并且可以运行,但我不推荐它,因为您可以同时让两个实体映射单行。
我有以下 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
注释中定义的名称,要么使用休眠配置中使用的命名约定生成。
您提供的示例已经足够并且可以运行,但我不推荐它,因为您可以同时让两个实体映射单行。