Приведенный ниже код кажется простым, но это занимает у меня много времени, но оказалось громоздким и длинным кодом, даже если я не люблю. Может ли кто-нибудь помочь мне с некоторым эффективным кодом? большое спасибо.
кстати, я использую hibernate 3.6 реализацию JPA
@Entity
class X
{
@OneToMany( fetch = FetchType.EAGER, mappedBy = "x", cascade = { CascadeType.PERSIST, CascadeType.MERGE } )
private Set<Y> ys = new HashSet<Y>();
public void persist()
{
//here, this(x) is newly create but its ys are already in the DB, so how to write the code?
}
public void merge()
{
//like persist(), the ys of this(x) is changed, how to merge effiently?
}
}
Я использую приведенное ниже, но оно выдаст исключение: Невозможно получить непрошенную сущность
public void merge()
{
EntityManager em = entityManager();
EntityTransaction tx = em.getTransaction();
try
{
tx.begin();
for(Y y: ys)
em.merge(y);
em.merge(this);
tx.end();
}
finally
{
...
}
}