use of org.hibernate.testing.orm.domain.gambit.SimpleEntity in project hibernate-orm by hibernate.
the class EntityWithLazyBidirectionalOneToOneTest method testHqlSelectParent.
@Test
public void testHqlSelectParent(SessionFactoryScope scope) {
StatisticsImplementor statistics = scope.getSessionFactory().getStatistics();
statistics.clear();
scope.inTransaction(session -> {
final EntityWithLazyOneToOne loaded = session.createQuery("select e from EntityWithLazyOneToOne e where e.other.id = 2", EntityWithLazyOneToOne.class).uniqueResult();
assertThat(loaded.getName(), equalTo("first"));
assertThat(statistics.getPrepareStatementCount(), is(1L));
SimpleEntity other = loaded.getOther();
assertFalse(Hibernate.isInitialized(other), "The lazy association should not be initialized");
assertThat(other, notNullValue());
assertThat(other.getId(), equalTo(2));
assertFalse(Hibernate.isInitialized(other), "getId() should not trigger the lazy association initialization");
assertThat(statistics.getPrepareStatementCount(), is(1L));
other.getSomeDate();
assertTrue(Hibernate.isInitialized(other), "The lazy association should be initialized");
assertThat(statistics.getPrepareStatementCount(), is(2L));
});
}
use of org.hibernate.testing.orm.domain.gambit.SimpleEntity in project hibernate-orm by hibernate.
the class EntityWithLazyBidirectionalOneToOneTest method setUp.
@BeforeEach
public void setUp(SessionFactoryScope scope) {
scope.inTransaction(session -> {
EntityWithLazyOneToOne entity = new EntityWithLazyOneToOne(1, "first", Integer.MAX_VALUE);
SimpleEntity other = new SimpleEntity(2, Calendar.getInstance().getTime(), null, Integer.MAX_VALUE, Long.MAX_VALUE, null);
entity.setOther(other);
session.save(other);
session.save(entity);
});
EntityWithLazyOneToOne entity = new EntityWithLazyOneToOne(3, "second", Integer.MAX_VALUE);
scope.inTransaction(session -> {
SimpleEntity other = new SimpleEntity(4, Calendar.getInstance().getTime(), null, 1, Long.MAX_VALUE, null);
entity.setOther(other);
session.save(other);
session.save(entity);
});
}
use of org.hibernate.testing.orm.domain.gambit.SimpleEntity in project hibernate-orm by hibernate.
the class EntityWithOneToOneJoinTableTest method testHqlSelectParentWithJoin.
@Test
public void testHqlSelectParentWithJoin(SessionFactoryScope scope) {
StatisticsImplementor statistics = scope.getSessionFactory().getStatistics();
statistics.clear();
scope.inTransaction(session -> {
final EntityWithOneToOneJoinTable loaded = session.createQuery("select e from EntityWithOneToOneJoinTable e join e.other o where e.id = 1", EntityWithOneToOneJoinTable.class).uniqueResult();
assertThat(loaded.getName(), equalTo("first"));
assertThat(statistics.getPrepareStatementCount(), is(2L));
assertThat(loaded, notNullValue());
assertThat(loaded.getName(), equalTo("first"));
SimpleEntity other = loaded.getOther();
assertTrue(Hibernate.isInitialized(other));
assertThat(other, notNullValue());
assertThat(other.getId(), equalTo(2));
assertThat(statistics.getPrepareStatementCount(), is(2L));
});
}
use of org.hibernate.testing.orm.domain.gambit.SimpleEntity in project hibernate-orm by hibernate.
the class EntityWithOneToOneJoinTableTest method setUp.
@BeforeEach
public void setUp(SessionFactoryScope scope) {
EntityWithOneToOneJoinTable entity = new EntityWithOneToOneJoinTable(1, "first", Integer.MAX_VALUE);
SimpleEntity other = new SimpleEntity(2, Calendar.getInstance().getTime(), null, Integer.MAX_VALUE, Long.MAX_VALUE, null);
entity.setOther(other);
scope.inTransaction(session -> {
session.save(other);
});
scope.inTransaction(session -> {
session.save(entity);
});
scope.inTransaction(session -> {
EntityWithOneToOneJoinTable entity2 = new EntityWithOneToOneJoinTable(2, "second", Integer.MAX_VALUE);
SimpleEntity other2 = new SimpleEntity(3, Calendar.getInstance().getTime(), null, 1, Long.MAX_VALUE, null);
entity2.setOther(other2);
session.save(other2);
session.save(entity2);
});
}
use of org.hibernate.testing.orm.domain.gambit.SimpleEntity in project hibernate-orm by hibernate.
the class EntityWithOneToOneJoinTableTest method testHqlSelectParentWithJoinFetch.
@Test
public void testHqlSelectParentWithJoinFetch(SessionFactoryScope scope) {
StatisticsImplementor statistics = scope.getSessionFactory().getStatistics();
statistics.clear();
scope.inTransaction(session -> {
final EntityWithOneToOneJoinTable loaded = session.createQuery("select e from EntityWithOneToOneJoinTable e join fetch e.other o where e.id = 1", EntityWithOneToOneJoinTable.class).uniqueResult();
assertThat(loaded.getName(), equalTo("first"));
assertThat(statistics.getPrepareStatementCount(), is(1L));
assertThat(loaded, notNullValue());
assertThat(loaded.getName(), equalTo("first"));
SimpleEntity other = loaded.getOther();
assertTrue(Hibernate.isInitialized(other));
assertThat(other, notNullValue());
assertThat(other.getId(), equalTo(2));
assertThat(statistics.getPrepareStatementCount(), is(1L));
});
}
Aggregations