use of com.haulmont.cuba.core.Query in project cuba by cuba-platform.
the class SoftDeleteTest method testOneToMany_Query.
@Test
public void testOneToMany_Query() {
System.out.println("===================== BEGIN testOneToMany_Query =====================");
Transaction tx = cont.persistence().createTransaction();
try {
EntityManager em = cont.persistence().getEntityManager();
Query q = em.createQuery("select u from sec$User u where u.id = ?1");
q.setParameter(1, userId);
User user = (User) q.getSingleResult();
List<UserRole> userRoles = user.getUserRoles();
assertEquals(1, userRoles.size());
for (UserRole ur : userRoles) {
assertNotNull(ur.getRole());
}
tx.commit();
} finally {
tx.end();
}
System.out.println("===================== END testOneToMany_Query =====================");
}
use of com.haulmont.cuba.core.Query in project cuba by cuba-platform.
the class EntityCacheTestClass method testUpdateQuery.
@Test
public void testUpdateQuery() throws Exception {
appender.clearMessages();
loadUser();
// User, Group
assertEquals(2, appender.filterMessages(m -> m.contains("> SELECT")).count());
appender.clearMessages();
try (Transaction tx = cont.persistence().createTransaction()) {
Query query = cont.entityManager().createQuery("update sec$User u set u.position = ?1 where u.loginLowerCase = ?2");
query.setParameter(1, "new position");
query.setParameter(2, this.user.getLoginLowerCase());
query.executeUpdate();
tx.commit();
}
appender.clearMessages();
User u = loadUser();
assertEquals("new position", u.getPosition());
// Group
assertEquals(1, appender.filterMessages(m -> m.contains("> SELECT")).count());
}
use of com.haulmont.cuba.core.Query in project cuba by cuba-platform.
the class EntityCacheTestClass method testAccessConnectionWithCacheInvalidation.
@Test
@Ignore
public void testAccessConnectionWithCacheInvalidation() {
appender.clearMessages();
try (Transaction tx = cont.persistence().createTransaction()) {
cont.persistence().getEntityManager().getConnection();
ViewRepository viewRepository = AppBeans.get(ViewRepository.class);
View view = viewRepository.getView(cont.metadata().getClassNN(User.class), "user.browse");
cont.entityManager().find(User.class, this.user.getId(), view);
tx.commit();
}
// User, Group
assertEquals(2, appender.filterMessages(m -> m.contains("> SELECT")).count());
appender.clearMessages();
try (Transaction tx = cont.persistence().createTransaction()) {
cont.persistence().getEntityManager().getConnection();
ViewRepository viewRepository = AppBeans.get(ViewRepository.class);
View view = viewRepository.getView(cont.metadata().getClassNN(User.class), "user.browse");
cont.entityManager().find(User.class, this.user.getId(), view);
tx.commit();
}
// User, Group
assertEquals(0, appender.filterMessages(m -> m.contains("> SELECT")).count());
appender.clearMessages();
try (Transaction tx = cont.persistence().createTransaction(new TransactionParams().setReadOnly(true))) {
try (Transaction tx1 = cont.persistence().getTransaction()) {
cont.persistence().getEntityManager().getConnection();
tx1.commit();
}
ViewRepository viewRepository = AppBeans.get(ViewRepository.class);
View view = viewRepository.getView(cont.metadata().getClassNN(User.class), "user.browse");
Query query = cont.entityManager().createQuery("select u from sec$User u where u.id = :id").setParameter("id", user.getId());
query.setView(View.copy(view).setLoadPartialEntities(true));
((QueryImpl) query).setSingleResultExpected(true);
User userL = (User) query.getSingleResult();
// User userL = cont.entityManager().find(User.class, user.getId(), view);
assertNotNull(userL);
tx.commit();
}
// User, Group
assertEquals(0, appender.filterMessages(m -> m.contains("> SELECT")).count());
}
use of com.haulmont.cuba.core.Query in project cuba by cuba-platform.
the class EntityCacheTestClass method testQuery.
@Test
public void testQuery() throws Exception {
appender.clearMessages();
User u1, u2;
List<User> list;
try (Transaction tx = cont.persistence().createTransaction()) {
TypedQuery<User> query = cont.entityManager().createQuery("select u from sec$User u where u.login like ?1", User.class);
query.setParameter(1, "ECTest%");
query.setViewName("user.browse");
list = query.getResultList();
tx.commit();
}
u1 = list.stream().filter(u -> u.getId().equals(this.user.getId())).findFirst().get();
assertEquals(this.user.getLogin(), u1.getLogin());
assertEquals(this.group, u1.getGroup());
u2 = list.stream().filter(user -> user.getId().equals(this.user2.getId())).findFirst().get();
assertEquals(this.user2.getLogin(), u2.getLogin());
assertEquals(this.group, u2.getGroup());
// User, Group
assertEquals(2, appender.filterMessages(m -> m.contains("> SELECT")).count());
appender.clearMessages();
try (Transaction tx = cont.persistence().createTransaction()) {
TypedQuery<User> query = cont.entityManager().createQuery("select u from sec$User u where u.login like ?1", User.class);
query.setParameter(1, "ECTest%");
query.setViewName("user.browse");
list = query.getResultList();
tx.commit();
}
u1 = list.stream().filter(u -> u.getId().equals(this.user.getId())).findFirst().get();
assertEquals(this.user.getLogin(), u1.getLogin());
assertEquals(this.group, u1.getGroup());
u2 = list.stream().filter(user -> user.getId().equals(this.user2.getId())).findFirst().get();
assertEquals(this.user2.getLogin(), u2.getLogin());
assertEquals(this.group, u2.getGroup());
// User only
assertEquals(1, appender.filterMessages(m -> m.contains("> SELECT")).count());
}
use of com.haulmont.cuba.core.Query in project cuba by cuba-platform.
the class QueryCacheTestClass method testNotEntityQuery.
@Test
public void testNotEntityQuery() throws Exception {
appender.clearMessages();
assertEquals(0, queryCache.size());
try (Transaction tx = cont.persistence().createTransaction()) {
EntityManager em = cont.entityManager();
Query query = em.createQuery("select u, u.name from sec$User u where u.login = :login");
query.setCacheable(true);
query.setParameter("login", "ECTest-" + user.getId());
query.getResultList();
tx.commit();
}
assertEquals(0, queryCache.size());
try (Transaction tx = cont.persistence().createTransaction()) {
EntityManager em = cont.entityManager();
Query query = em.createQuery("select u.name from sec$User u where u.login = :login");
query.setCacheable(true);
query.setParameter("login", "ECTest-" + user.getId());
query.getResultList();
tx.commit();
}
assertEquals(0, queryCache.size());
}
Aggregations