use of com.haulmont.cuba.core.global.View in project cuba by cuba-platform.
the class SerializationTest method testCompareSpeedAndSize.
@Test
@Ignore
public void testCompareSpeedAndSize() throws Exception {
View view = getView();
User user;
Transaction tx = cont.persistence().createTransaction();
try {
EntityManager em = cont.persistence().getEntityManager();
user = em.find(User.class, userId, view);
assertNotNull(user);
tx.commit();
} finally {
tx.end();
}
KryoSerialization kryoSerialization = new KryoSerialization();
// warm up
kryoSerialization.serialize(user);
StandardSerialization standardSerialization = new StandardSerialization();
// warm up
standardSerialization.serialize(user);
int kryoLength = 0;
long start = System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
kryoLength = kryoSerialization.serialize(user).length;
}
long end = System.currentTimeMillis();
long kryoTime = end - start;
System.out.printf("Kryo:\t\tSize [%d]. Time [%d]\n", kryoLength, kryoTime);
int standardLength = 0;
start = System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
standardLength = standardSerialization.serialize(user).length;
}
end = System.currentTimeMillis();
long standardTime = end - start;
System.out.printf("Standard:\t\tSize [%d]. Time [%d]\n", standardLength, standardTime);
assertTrue(kryoTime < standardTime);
assertTrue(kryoLength < standardLength);
}
use of com.haulmont.cuba.core.global.View in project cuba by cuba-platform.
the class QueryCacheTestClass method testLoadingWithNotPartialView.
@Test
public void testLoadingWithNotPartialView() throws Exception {
appender.clearMessages();
User user;
List<User> resultList;
// load with view: one parameter login
View userLoginView = new View(User.class).addProperty("login");
try (Transaction tx = cont.persistence().createTransaction()) {
EntityManager em = cont.entityManager();
TypedQuery<User> query = em.createQuery("select u from sec$User u where u.login like 'ECTest-%' order by u.name asc", User.class);
query.setCacheable(true);
query.setView(userLoginView);
resultList = query.getResultList();
assertEquals(resultList.size(), 2);
tx.commit();
}
user = reserialize(resultList.get(0));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
user = reserialize(resultList.get(1));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
// user
assertEquals(1, appender.filterMessages(m -> m.contains("> SELECT")).count());
appender.clearMessages();
try (Transaction tx = cont.persistence().createTransaction()) {
EntityManager em = cont.entityManager();
TypedQuery<User> query = em.createQuery("select u from sec$User u where u.login like 'ECTest-%' order by u.name asc", User.class);
query.setCacheable(true);
query.setView(userLoginView);
resultList = query.getResultList();
assertEquals(resultList.size(), 2);
tx.commit();
}
user = reserialize(resultList.get(0));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
user = reserialize(resultList.get(1));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
// user
assertEquals(0, appender.filterMessages(m -> m.contains("> SELECT")).count());
appender.clearMessages();
// load with view: group
View groupView = new View(Group.class, false).addProperty("name");
View userGroupView = new View(User.class).addProperty("group", groupView);
try (Transaction tx = cont.persistence().createTransaction()) {
EntityManager em = cont.entityManager();
TypedQuery<User> query = em.createQuery("select u from sec$User u where u.login like 'ECTest-%' order by u.name asc", User.class);
query.setCacheable(true);
query.setView(userGroupView);
resultList = query.getResultList();
assertEquals(resultList.size(), 2);
tx.commit();
}
user = reserialize(resultList.get(0));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
assertEquals(user.getGroup(), group);
assertEquals(user.getGroup().getName(), group.getName());
user = reserialize(resultList.get(1));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
assertEquals(user.getGroup(), group);
assertEquals(user.getGroup().getName(), group.getName());
assertEquals(1, appender.filterMessages(m -> m.contains("> SELECT") && m.contains("SEC_GROUP")).count());
appender.clearMessages();
try (Transaction tx = cont.persistence().createTransaction()) {
EntityManager em = cont.entityManager();
TypedQuery<User> query = em.createQuery("select u from sec$User u where u.login like 'ECTest-%' order by u.name asc", User.class);
query.setCacheable(true);
query.setView(userGroupView);
resultList = query.getResultList();
assertEquals(resultList.size(), 2);
tx.commit();
}
user = reserialize(resultList.get(0));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
assertEquals(user.getGroup(), group);
assertEquals(user.getGroup().getName(), group.getName());
user = reserialize(resultList.get(1));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
assertEquals(user.getGroup(), group);
assertEquals(user.getGroup().getName(), group.getName());
assertEquals(0, appender.filterMessages(m -> m.contains("> SELECT")).count());
appender.clearMessages();
try (Transaction tx = cont.persistence().createTransaction()) {
EntityManager em = cont.entityManager();
TypedQuery<User> query = em.createQuery("select u from sec$User u where u.login like 'ECTest-%' order by u.name asc", User.class);
query.setCacheable(true);
query.setView(userLoginView);
resultList = query.getResultList();
assertEquals(resultList.size(), 2);
tx.commit();
}
user = reserialize(resultList.get(0));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
assertFail(user::getGroup);
user = reserialize(resultList.get(1));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
assertFail(user::getGroup);
assertEquals(0, appender.filterMessages(m -> m.contains("> SELECT")).count());
appender.clearMessages();
try (Transaction tx = cont.persistence().createTransaction()) {
EntityManager em = cont.entityManager();
TypedQuery<User> query = em.createQuery("select u from sec$User u where u.login like 'ECTest-%' order by u.name asc", User.class);
query.setCacheable(true);
query.setView(userGroupView);
resultList = query.getResultList();
assertEquals(resultList.size(), 2);
tx.commit();
}
user = reserialize(resultList.get(0));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
assertEquals(user.getGroup(), group);
assertEquals(user.getGroup().getName(), group.getName());
user = reserialize(resultList.get(1));
assertNotNull(user.getLogin());
assertNotNull(user.getName());
assertEquals(user.getGroup(), group);
assertEquals(user.getGroup().getName(), group.getName());
assertEquals(0, appender.filterMessages(m -> m.contains("> SELECT")).count());
}
use of com.haulmont.cuba.core.global.View in project cuba by cuba-platform.
the class FetchJoinTest method testNotLoadingJoinB.
@Test
public void testNotLoadingJoinB() throws Exception {
try (Transaction tx = cont.persistence().createTransaction()) {
EntityManager em = cont.persistence().getEntityManager();
View fView = new View(JoinF.class).addProperty("name");
View eView = new View(JoinE.class).addProperty("name").addProperty("f", fView, FetchMode.JOIN);
View dView = new View(JoinD.class).addProperty("name");
View cView = new View(JoinC.class).addProperty("name").addProperty("d", dView, FetchMode.JOIN).addProperty("e", eView, FetchMode.JOIN);
View bView = new View(JoinB.class).addProperty("name").addProperty("c", cView, FetchMode.JOIN);
View aView = new View(JoinA.class).addProperty("name").addProperty("b", bView, FetchMode.JOIN);
JoinA loadedA = em.find(JoinA.class, joinA.getId(), aView);
assertNotNull(loadedA);
assertNotNull(loadedA.getB().getC().getD());
assertNotNull(loadedA.getB().getC().getE());
assertNotNull(loadedA.getB().getC().getE().getF());
tx.commit();
}
}
use of com.haulmont.cuba.core.global.View in project cuba by cuba-platform.
the class EclipseLinkDetachedTest method testSerializedFetchGroup.
@Test
public void testSerializedFetchGroup() throws Exception {
Transaction tx;
EntityManager em;
User user;
tx = cont.persistence().createTransaction();
try {
em = cont.persistence().getEntityManager();
View view = new View(User.class).addProperty("login").setLoadPartialEntities(true);
user = em.find(User.class, userId, view);
assertNotNull(user);
tx.commit();
} finally {
tx.end();
}
user = reserialize(user);
assertEquals("testLogin", user.getLogin());
// exception on getting not loaded references
try {
user.getName();
fail();
} catch (Exception ignored) {
}
try {
user.getGroup();
fail();
} catch (Exception ignored) {
}
try {
user.getUserRoles().size();
fail();
} catch (Exception ignored) {
}
}
use of com.haulmont.cuba.core.global.View in project cuba by cuba-platform.
the class EclipseLinkDetachedTest method testNotSerializedFetchGroup.
@Test
public void testNotSerializedFetchGroup() throws Exception {
Transaction tx;
EntityManager em;
User user;
tx = cont.persistence().createTransaction();
try {
em = cont.persistence().getEntityManager();
View view = new View(User.class).addProperty("login").setLoadPartialEntities(true);
user = em.find(User.class, userId, view);
assertNotNull(user);
tx.commit();
} finally {
tx.end();
}
assertEquals("testLogin", user.getLogin());
// unfetched
try {
user.getName();
fail();
} catch (IllegalStateException ignored) {
}
try {
user.getGroup();
fail();
} catch (IllegalStateException ignored) {
}
}
Aggregations