Search in sources :

Example 91 with Person

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());
}
Also used : CriteriaBuilder(com.blazebit.persistence.CriteriaBuilder) InsertCriteriaBuilder(com.blazebit.persistence.InsertCriteriaBuilder) EntityManager(javax.persistence.EntityManager) TxVoidWork(com.blazebit.persistence.testsuite.tx.TxVoidWork) List(java.util.List) Document(com.blazebit.persistence.testsuite.entity.Document) Person(com.blazebit.persistence.testsuite.entity.Person) IdHolderCTE(com.blazebit.persistence.testsuite.entity.IdHolderCTE) Category(org.junit.experimental.categories.Category) Test(org.junit.Test)

Example 92 with Person

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);
        }
    });
}
Also used : EntityManager(javax.persistence.EntityManager) TxVoidWork(com.blazebit.persistence.testsuite.tx.TxVoidWork) Document(com.blazebit.persistence.testsuite.entity.Document) Person(com.blazebit.persistence.testsuite.entity.Person)

Example 93 with Person

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);
        }
    });
}
Also used : EntityManager(javax.persistence.EntityManager) TxVoidWork(com.blazebit.persistence.testsuite.tx.TxVoidWork) Version(com.blazebit.persistence.testsuite.entity.Version) Document(com.blazebit.persistence.testsuite.entity.Document) Person(com.blazebit.persistence.testsuite.entity.Person)

Example 94 with Person

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);
        }
    });
}
Also used : EntityManager(javax.persistence.EntityManager) TxVoidWork(com.blazebit.persistence.testsuite.tx.TxVoidWork) Version(com.blazebit.persistence.testsuite.entity.Version) Document(com.blazebit.persistence.testsuite.entity.Document) Person(com.blazebit.persistence.testsuite.entity.Person)

Example 95 with Person

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);
        }
    });
}
Also used : EntityManager(javax.persistence.EntityManager) TxVoidWork(com.blazebit.persistence.testsuite.tx.TxVoidWork) Document(com.blazebit.persistence.testsuite.entity.Document) Person(com.blazebit.persistence.testsuite.entity.Person) Before(org.junit.Before)

Aggregations

Person (com.blazebit.persistence.testsuite.entity.Person)175 Document (com.blazebit.persistence.testsuite.entity.Document)94 EntityManager (javax.persistence.EntityManager)77 TxVoidWork (com.blazebit.persistence.testsuite.tx.TxVoidWork)76 Test (org.junit.Test)50 AssertStatementBuilder (com.blazebit.persistence.testsuite.base.jpa.assertion.AssertStatementBuilder)19 Before (org.junit.Before)19 Version (com.blazebit.persistence.testsuite.entity.Version)18 AbstractEntityViewTest (com.blazebit.persistence.view.testsuite.AbstractEntityViewTest)14 HashMap (java.util.HashMap)14 Map (java.util.Map)14 AbstractEntityViewUpdateDocumentTest (com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateDocumentTest)11 Category (org.junit.experimental.categories.Category)11 CriteriaBuilder (com.blazebit.persistence.CriteriaBuilder)10 UpdatablePersonView (com.blazebit.persistence.view.testsuite.update.subview.simple.mutable.model.UpdatablePersonView)7 NameObject (com.blazebit.persistence.testsuite.entity.NameObject)5 Tuple (javax.persistence.Tuple)5 AbstractCoreTest (com.blazebit.persistence.testsuite.AbstractCoreTest)4 NameObjectContainer (com.blazebit.persistence.testsuite.entity.NameObjectContainer)4 QDocument (com.blazebit.persistence.testsuite.entity.QDocument)4