休眠 EntityManager 3.4.0 或 3.6.10
MyEntity {
@Id // NOT @GeneratedValue
long cislo;
@OneToMany( ... )
List<MyItem> items = new ArrayList();
public MyEntity( long cislo ) { this.cislo = cislo; }
...
}
然后,在 DAO 中:
MyEntity ent = new MyEntity( id );
ent.addItem( new Item( ... ) );
ent.addItem( new Item( ... ) );
ent = em.merge( ent );
1)为什么我需要使用merge()
,而不是persist()
抱怨实体分离?是手动设置ID的原因吗?
2)为什么这个合并返回一个没有集合集的代理?
3)最重要的是:我怎样才能得到完全初始化的实体merge()
?
除了EAGER
在成员集合上设置。
我可以使用原始对象,但我很好奇它是否可能。我也可以查询实体,但这似乎是在浪费资源。