Search in sources :

Example 6 with SimpleEntity

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));
    });
}
Also used : SimpleEntity(org.hibernate.testing.orm.domain.gambit.SimpleEntity) StatisticsImplementor(org.hibernate.stat.spi.StatisticsImplementor) EntityWithLazyOneToOne(org.hibernate.testing.orm.domain.gambit.EntityWithLazyOneToOne) Test(org.junit.jupiter.api.Test)

Example 7 with SimpleEntity

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);
    });
}
Also used : SimpleEntity(org.hibernate.testing.orm.domain.gambit.SimpleEntity) EntityWithLazyOneToOne(org.hibernate.testing.orm.domain.gambit.EntityWithLazyOneToOne) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 8 with SimpleEntity

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));
    });
}
Also used : EntityWithOneToOneJoinTable(org.hibernate.testing.orm.domain.gambit.EntityWithOneToOneJoinTable) SimpleEntity(org.hibernate.testing.orm.domain.gambit.SimpleEntity) StatisticsImplementor(org.hibernate.stat.spi.StatisticsImplementor) Test(org.junit.jupiter.api.Test)

Example 9 with SimpleEntity

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);
    });
}
Also used : EntityWithOneToOneJoinTable(org.hibernate.testing.orm.domain.gambit.EntityWithOneToOneJoinTable) SimpleEntity(org.hibernate.testing.orm.domain.gambit.SimpleEntity) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 10 with SimpleEntity

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));
    });
}
Also used : EntityWithOneToOneJoinTable(org.hibernate.testing.orm.domain.gambit.EntityWithOneToOneJoinTable) SimpleEntity(org.hibernate.testing.orm.domain.gambit.SimpleEntity) StatisticsImplementor(org.hibernate.stat.spi.StatisticsImplementor) Test(org.junit.jupiter.api.Test)

Aggregations

SimpleEntity (org.hibernate.testing.orm.domain.gambit.SimpleEntity)28 Test (org.junit.jupiter.api.Test)19 StatisticsImplementor (org.hibernate.stat.spi.StatisticsImplementor)15 BeforeEach (org.junit.jupiter.api.BeforeEach)8 EntityWithOneToOne (org.hibernate.testing.orm.domain.gambit.EntityWithOneToOne)7 EntityWithOneToOneJoinTable (org.hibernate.testing.orm.domain.gambit.EntityWithOneToOneJoinTable)6 EntityWithManyToOneJoinTable (org.hibernate.testing.orm.domain.gambit.EntityWithManyToOneJoinTable)5 EntityWithLazyOneToOne (org.hibernate.testing.orm.domain.gambit.EntityWithLazyOneToOne)4 BasicEntity (org.hibernate.testing.orm.domain.gambit.BasicEntity)2 EntityWithOneToOneSharingPrimaryKey (org.hibernate.testing.orm.domain.gambit.EntityWithOneToOneSharingPrimaryKey)2 Date (java.sql.Date)1 Time (java.sql.Time)1 Timestamp (java.sql.Timestamp)1 LocalDate (java.time.LocalDate)1 LocalDateTime (java.time.LocalDateTime)1 LocalTime (java.time.LocalTime)1 EntityOfBasics (org.hibernate.testing.orm.domain.gambit.EntityOfBasics)1 EntityOfLists (org.hibernate.testing.orm.domain.gambit.EntityOfLists)1 EntityOfMaps (org.hibernate.testing.orm.domain.gambit.EntityOfMaps)1 BeforeAll (org.junit.jupiter.api.BeforeAll)1