@Test public void testPolymorphicQuery() { ChildEntity childVer1 = new ChildEntity( id1, "x", null ); assert getAuditReader().createQuery().forEntitiesAtRevision( ChildEntity.class, 1 ).getSingleResult() .equals( childVer1 ); assert getAuditReader().createQuery().forEntitiesAtRevision( ParentEntity.class, 1 ).getSingleResult() .equals( childVer1 ); } }
@Test public void testPolymorphicQuery() { ChildEntity childVer1 = new ChildEntity( id1, "x", 1l ); assert getAuditReader().createQuery().forEntitiesAtRevision( ChildEntity.class, 1 ).getSingleResult() .equals( childVer1 ); assert getAuditReader().createQuery().forEntitiesAtRevision( ParentEntity.class, 1 ).getSingleResult() .equals( childVer1 ); } }
@Test public void testPolymorphicQuery() { EmptyChildEntity childVer1 = new EmptyChildEntity( id1, "x" ); assert getAuditReader().createQuery().forEntitiesAtRevision( EmptyChildEntity.class, 1 ).getSingleResult() .equals( childVer1 ); assert getAuditReader().createQuery().forEntitiesAtRevision( ParentEntity.class, 1 ).getSingleResult() .equals( childVer1 ); } }
@Test public void testPolymorphicQuery() { ChildEntity childVer1 = new ChildEntity( id1, "x", 1l ); assert getAuditReader().createQuery().forEntitiesAtRevision( ChildEntity.class, 1 ).getSingleResult() .equals( childVer1 ); assert getAuditReader().createQuery().forEntitiesAtRevision( ParentEntity.class, 1 ).getSingleResult() .equals( childVer1 ); } }
@Test public void testPolymorphicQuery() { ChildEntity childVer1 = new ChildEntity( id1, "x", 1l ); assert getAuditReader().createQuery().forEntitiesAtRevision( ChildEntity.class, 1 ).getSingleResult() .equals( childVer1 ); assert getAuditReader().createQuery().forEntitiesAtRevision( ParentEntity.class, 1 ).getSingleResult() .equals( childVer1 ); } }
@Test public void testPolymorphicQuery() { ChildPrimaryKeyJoinEntity childVer1 = new ChildPrimaryKeyJoinEntity( id1, "x", 1l ); assert getAuditReader().createQuery() .forEntitiesAtRevision( ChildPrimaryKeyJoinEntity.class, 1 ) .getSingleResult() .equals( childVer1 ); assert getAuditReader().createQuery().forEntitiesAtRevision( ParentEntity.class, 1 ).getSingleResult() .equals( childVer1 ); }
@Test public void testPolymorphicQuery() { ParentEntity parentVer1 = new ParentEntity( id1, "x" ); assert getAuditReader().createQuery().forEntitiesAtRevision( ParentEntity.class, 1 ).getSingleResult() .equals( parentVer1 ); assert getAuditReader().createQuery().forEntitiesAtRevision( ChildEntity.class, 1 ) .getResultList().size() == 0; } }
@Test public void testReferencePropertyIsNotNullQuery() { CollectionRefIngEntity ver = (CollectionRefIngEntity) getAuditReader().createQuery() .forEntitiesAtRevision( CollectionRefIngEntity.class, 3 ) .add( AuditEntity.property( "reference" ).isNotNull() ) .getSingleResult(); assert ver.getId().equals( idReferenceToParentNotNull ); } }
@Test public void testCacheFindAfterEntitiesAtRevisionQuery() { IntTestEntity entFromQuery = (IntTestEntity) getAuditReader().createQuery() .forEntitiesAtRevision( IntTestEntity.class, 1 ) .getSingleResult(); IntTestEntity entFromFind = getAuditReader().find( IntTestEntity.class, id1, 1 ); assert entFromFind == entFromQuery; } }
@Test public void testRevisionCountQuery() { // The query shouldn't be ordered as always, otherwise - we get an exception. Object result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber().count() ) .add( AuditEntity.id().eq( id1 ) ) .getSingleResult(); Assert.assertEquals( Long.valueOf( 4 ), result ); }
@Test @TestForIssue(jiraKey = "HHH-8036") public void testEntityIdProjection() { Integer maxId = (Integer) getAuditReader().createQuery().forRevisionsOfEntity( IntTestEntity.class, true, true ) .addProjection( AuditEntity.id().max() ) .add( AuditEntity.revisionNumber().gt( 2 ) ) .getSingleResult(); Assert.assertEquals( Integer.valueOf( 2 ), maxId ); }
@Test public void testSimplePropertyIsNullQuery() { StrIntTestEntity ver = (StrIntTestEntity) getAuditReader().createQuery() .forEntitiesAtRevision( StrIntTestEntity.class, 1 ) .add( AuditEntity.property( "str1" ).isNull() ) .getSingleResult(); assert ver.equals( new StrIntTestEntity( null, 1, idSimplePropertyNull ) ); }
@Test public void testSimplePropertyIsNotNullQuery() { StrIntTestEntity ver = (StrIntTestEntity) getAuditReader().createQuery() .forEntitiesAtRevision( StrIntTestEntity.class, 1 ) .add( AuditEntity.property( "str1" ).isNotNull() ) .getSingleResult(); assert ver.equals( new StrIntTestEntity( "data", 2, idSimplePropertyNotNull ) ); }
@Test public void testReferenceMulticolumnPropertyIsNullQuery() { SetRefIngEmbIdEntity ver = (SetRefIngEmbIdEntity) getAuditReader().createQuery() .forEntitiesAtRevision( SetRefIngEmbIdEntity.class, 2 ) .add( AuditEntity.property( "reference" ).isNull() ) .getSingleResult(); assert ver.getId().equals( idMulticolumnReferenceToParentNull ); }
@Test @TestForIssue(jiraKey = "HHH-8567") public void testIdPropertyRestriction() { StrIntTestEntity ver2 = (StrIntTestEntity) getAuditReader().createQuery() .forEntitiesAtRevision( StrIntTestEntity.class, 2 ) .add( AuditEntity.property( "id" ).eq( id2 ) ) .getSingleResult(); Assert.assertEquals( new StrIntTestEntity( "a", 20, id2 ), ver2 ); }
@Test @TestForIssue(jiraKey = "HHH-8495") public void testIlike() { StrIntTestEntity site1 = new StrIntTestEntity( "aBc", 10, id1 ); StrIntTestEntity result = (StrIntTestEntity) getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, true, true ) .add( AuditEntity.property( "str1" ).ilike( "abc" ) ) .getSingleResult(); Assert.assertEquals( site1, result ); }
@Test @TestForIssue(jiraKey = "HHH-8036") public void testUnusualIdFieldName() { UnusualIdNamingEntity entity = (UnusualIdNamingEntity) getAuditReader().createQuery() .forRevisionsOfEntity( UnusualIdNamingEntity.class, true, true ) .add( AuditEntity.id().like( "id1" ) ) .getSingleResult(); Assert.assertEquals( new UnusualIdNamingEntity( "id1", "data1" ), entity ); }
@Test @TestForIssue(jiraKey = "HHH-8495") public void testIlikeWithMatchMode() { StrIntTestEntity site1 = new StrIntTestEntity( "aBc", 10, id1 ); StrIntTestEntity result = (StrIntTestEntity) getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, true, true ) .add( AuditEntity.property( "str1" ).ilike( "BC", MatchMode.ANYWHERE ) ) .getSingleResult(); Assert.assertEquals( site1, result ); }
@Test public void testComparisonOfTwoPropertiesFromDifferentEntities() { AuditReader auditReader = getAuditReader(); // the car where the owner age is equal to the owner address number. Car result = (Car) auditReader.createQuery() .forEntitiesAtRevision( Car.class, 1 ) .traverseRelation( "owner", JoinType.INNER, "p" ) .traverseRelation( "address", JoinType.INNER, "a" ) .up().up().add(AuditEntity.property( "p", "age" ) .eqProperty( "a", "number" ) ).getSingleResult(); assertEquals( "Unexpected car returned", toyota.getId(), result.getId() ); }
@Test @TestForIssue(jiraKey = "HHH-8567") public void testMultipleIdPropertyRestriction() { MulIdTestEntity ver2 = (MulIdTestEntity) getAuditReader().createQuery() .forEntitiesAtRevision( MulIdTestEntity.class, 2 ) .add( AuditEntity.property( "id1" ).eq( mulId1.getId1() ) ) .add( AuditEntity.property( "id2" ).eq( mulId1.getId2() ) ) .getSingleResult(); Assert.assertEquals( new MulIdTestEntity( mulId1.getId1(), mulId1.getId2(), "data" ), ver2 ); }