use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.
the class InsertTest method testInsertReturningSelectOld.
// NOTE: Currently only PostgreSQL and DB2 support returning from within a CTE
// NOTE: hibernate 4.2 does not support using parameters in the select clause
@Test
@Category({ NoH2.class, NoOracle.class, NoMSSQL.class, NoSQLite.class, NoFirebird.class, NoMySQL.class, NoHibernate42.class, NoDatanucleus.class, NoEclipselink.class, NoOpenJPA.class })
public void testInsertReturningSelectOld() {
transactional(new TxVoidWork() {
@Override
public void work(EntityManager em) {
final CriteriaBuilder<Document> cb = cbf.create(em, Document.class);
cb.withReturning(IdHolderCTE.class).insert(Document.class).from(Person.class, "p").bind("name").select("CONCAT(p.name,'s document')").bind("age").select("p.age").bind("idx").select("1").bind("owner").select("p").where("p.name").eq(p1.getName()).returning("id", "id").end();
cb.fromOld(Document.class, "d");
cb.from(IdHolderCTE.class, "idHolder");
cb.select("d");
cb.where("d.id").eqExpression("idHolder.id");
String expected = "WITH IdHolderCTE(id) AS(\n" + "INSERT INTO Document(age, idx, name, owner)\n" + "SELECT p.age, 1, CONCAT(p.name,'s document'), p FROM Person p WHERE p.name = :param_0 RETURNING id\n" + ")\n" + "SELECT d FROM OLD(Document) d, IdHolderCTE idHolder WHERE d.id = idHolder.id";
assertEquals(expected, cb.getQueryString());
List<Document> result = cb.getResultList();
assertEquals(0, result.size());
}
});
// Of course the next statement would see the changes
assertEquals(p1.getName() + "s document", byOwner(p1).getName());
}
use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.
the class CountQueryTest method setUpOnce.
@Override
public void setUpOnce() {
cleanDatabase();
transactional(new TxVoidWork() {
@Override
public void work(EntityManager em) {
Document doc1 = new Document("doc1");
Document doc2 = new Document("Doc2");
Document doc3 = new Document("doC3");
Document doc4 = new Document("dOc4");
Document doc5 = new Document("DOC5");
Document doc6 = new Document("bdoc");
Document doc7 = new Document("adoc");
Person o1 = new Person("Karl1");
Person o2 = new Person("Karl2");
Person o3 = new Person("Moritz");
o1.getLocalized().put(1, "abra kadabra");
o2.getLocalized().put(1, "ass");
doc1.setOwner(o1);
doc2.setOwner(o1);
doc3.setOwner(o1);
doc4.setOwner(o2);
doc5.setOwner(o2);
doc6.setOwner(o2);
doc7.setOwner(o2);
doc1.getContacts().put(1, o1);
doc1.getContacts().put(2, o2);
doc4.getContacts().put(1, o3);
em.persist(o1);
em.persist(o2);
em.persist(o3);
em.persist(doc1);
em.persist(doc2);
em.persist(doc3);
em.persist(doc4);
em.persist(doc5);
em.persist(doc6);
em.persist(doc7);
}
});
}
use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.
the class DateAddTest method setUpOnce.
@Override
public void setUpOnce() {
cleanDatabase();
transactional(new TxVoidWork() {
@Override
public void work(EntityManager em) {
Person p = new Person("Pers1");
p.setAge(20L);
em.persist(p);
Version v1 = new Version();
em.persist(v1);
Document doc1 = new Document("Doc1", p, v1);
doc1.setCreationDate(c1);
doc1.setCreationDate2(c1);
doc1.setLastModified(c1.getTime());
doc1.setLastModified2(c1.getTime());
em.persist(doc1);
}
});
}
use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.
the class DateDiffTest method setUpOnce.
@Override
public void setUpOnce() {
cleanDatabase();
setup();
transactional(new TxVoidWork() {
@Override
public void work(EntityManager em) {
Person p = new Person("Pers1");
p.setAge(20L);
em.persist(p);
Version v1 = new Version();
em.persist(v1);
Document doc1 = new Document("Doc1", p, v1);
doc1.setCreationDate(c1);
doc1.setCreationDate2(c2);
doc1.setLastModified(l1.getTime());
doc1.setLastModified2(l2.getTime());
em.persist(doc1);
}
});
}
use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.
the class DeleteTest method setUp.
@Before
public void setUp() {
cleanDatabase();
transactional(new TxVoidWork() {
@Override
public void work(EntityManager em) {
doc1 = new Document("D1");
doc2 = new Document("D2");
doc3 = new Document("D3");
Person o1 = new Person("P1");
doc1.setOwner(o1);
doc1.setResponsiblePerson(o1);
doc2.setOwner(o1);
doc2.setResponsiblePerson(o1);
doc3.setOwner(o1);
doc3.setResponsiblePerson(o1);
em.persist(o1);
em.persist(doc1);
em.persist(doc2);
em.persist(doc3);
}
});
}
Aggregations