use of com.vladmihalcea.hibernate.model.eagerset.SetParent in project vladmihalcea.wordpress.com by vladmihalcea.
the class HibernateSaveIdOnlyEntityTest method test.
@Test
public void test() {
final Long parentId = cleanAndSaveParent();
SetParent parent = transactionTemplate.execute(new TransactionCallback<SetParent>() {
@Override
public SetParent doInTransaction(TransactionStatus transactionStatus) {
SetParent parent = loadParent(parentId);
SetChild child1 = new SetChild();
child1.setName("child1");
SetChild child2 = new SetChild();
child2.setName("child2");
parent.addChild(child1);
parent.addChild(child2);
entityManager.merge(parent);
return parent;
}
});
transactionTemplate.execute(new TransactionCallback<Void>() {
@Override
public Void doInTransaction(TransactionStatus transactionStatus) {
SetParent idOnlyParent = new SetParent();
idOnlyParent.setId(parentId);
SetChild newChild = new SetChild();
newChild.setName("new");
newChild.setParent(idOnlyParent);
entityManager.persist(newChild);
entityManager.flush();
SetChild otherChild = new SetChild();
otherChild.setName("Other");
idOnlyParent.addChild(otherChild);
entityManager.flush();
assertEquals(1, idOnlyParent.getChildren().size());
return null;
}
});
transactionTemplate.execute(new TransactionCallback<Void>() {
@Override
public Void doInTransaction(TransactionStatus transactionStatus) {
SetParent parent = entityManager.find(SetParent.class, parentId);
assertEquals(3, parent.getChildren().size());
return null;
}
});
}
use of com.vladmihalcea.hibernate.model.eagerset.SetParent in project vladmihalcea.wordpress.com by vladmihalcea.
the class HibernateEagerSetTest method test.
@Test
public void test() {
final Long parentId = cleanAndSaveParent();
SetParent parent = transactionTemplate.execute(new TransactionCallback<SetParent>() {
@Override
public SetParent doInTransaction(TransactionStatus transactionStatus) {
SetParent parent = loadParent(parentId);
SetChild child1 = new SetChild();
child1.setName("child1");
SetChild child2 = new SetChild();
child2.setName("child2");
parent.addChild(child1);
parent.addChild(child2);
entityManager.merge(parent);
return parent;
}
});
transactionTemplate.execute(new TransactionCallback<Void>() {
@Override
public Void doInTransaction(TransactionStatus transactionStatus) {
SetParent parent = loadParent(parentId);
assertEquals(2, loadParent(parentId).getChildren().size());
assertTrue(parent.getChildren().contains(parent.getChildren().iterator().next()));
return null;
}
});
}
use of com.vladmihalcea.hibernate.model.eagerset.SetParent in project vladmihalcea.wordpress.com by vladmihalcea.
the class HibernateEagerSetTest method testFixByPersistingChild.
@Test
public void testFixByPersistingChild() {
final Long parentId = cleanAndSaveParent();
SetParent parent = transactionTemplate.execute(new TransactionCallback<SetParent>() {
@Override
public SetParent doInTransaction(TransactionStatus transactionStatus) {
SetParent parent = loadParent(parentId);
SetChild child1 = new SetChild();
child1.setName("child1");
SetChild child2 = new SetChild();
child2.setName("child2");
entityManager.persist(child1);
entityManager.persist(child2);
parent.addChild(child1);
parent.addChild(child2);
entityManager.merge(parent);
parent.getChildren().size();
return parent;
}
});
assertEquals(2, parent.getChildren().size());
}
Aggregations