我使用 Hibernate 来存储数据模型,其中有许多简单的字段:
@Entity
public class Shape extends DomainObject {
@LazyCollection(LazyCollectionOption.FALSE)
@CollectionOfElements()
private List<Shape> children;
@Column
private int numSides;
... etc. ...
}
DomainObject
父类(super class)跟踪Long id
.
我们想对 children
进行更改List
,这样就不再是简单的 List
,它实际上是一个Map
其中关键是 Long id
(来自父类(super class))。
@???
private Map<Long, Shape> children;
Hibernate 中如何处理这种性质的迁移/类型更改?我对 Hibernate 的这方面不太熟悉 - 是否有一些方法可以重载以接受 List<Shape>
(在第一次加载应用程序时,使用旧数据)并手动生成新的 Map
?
最佳答案
数据库中不应该有任何差异:您只需选择使用 Map 而不是 List 来存储 Shapes,但 Shape 实体的属性保持相同,因此存储形状的表也具有相同的属性列。
关于java - 更改 Hibernate 实体中的字段类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9182032/