我正在使用 Hibernate 4(带有 Spring)将我的对象保存到数据库中。当我尝试用集合子级保存父级时,我遇到了一些问题。
我的表:
| A | => PK (Composite) [String + Integer]
| B | => PK (Composite) [Stirng + Integer] + Integer
自然地,B 的 PK 与 A 的相同 PK 复合,并且 A 包含 B 的集合。
在我的代码中,我想要:
A parent = new A();
parent.addCollection(new B());
parentDao.create(parent)
当 Hibernate 保留对象时,它可以将 String 设置为 A PK 并计算 Inter 的 max + 1。B PK 的方式相同,Hibernate 从 A(父 => 子)设置相同的 PK 值并计算第二个 Intenger 的最大值 + 1。
这是可能的?提前致谢
编辑
我的课:
Class A {
static Class A_PK {
private String codAzienda;
private Integer year;
... Get, Set, HashCode, Equals and toString() ...
}
private A_PK id;
... another columns ...
@OneToMany(cascade=ALL)
@JoinColumns({
@JoinColumn(name="cod_azienda"),
@JoinColumn(name="year")
})
List<B> children;
}
Class B {
static Class B_PK {
private String codAzienda;
private Integer year;
private Integer nextId;
... Get, Set, HashCode, Equals and toString() ...
}
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "codAzienda", column = @Column(name = "cod_azienda")),
@AttributeOverride(name = "codCliente", column = @Column(name = "cod_cliente"))
})
private B_PK id;
... another columns ...
}