HHH-3575: fix with test

git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@15463 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
Adam Warski 2008-10-31 12:14:46 +00:00
parent 6a7db82fe0
commit c1312db934
4 changed files with 43 additions and 4 deletions

View File

@ -48,8 +48,12 @@ public AuditConjunction add(AuditCriterion criterion) {
public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) { public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
Parameters andParameters = parameters.addSubParameters(Parameters.AND); Parameters andParameters = parameters.addSubParameters(Parameters.AND);
for (AuditCriterion criterion : criterions) { if (criterions.size() == 0) {
criterion.addToQuery(verCfg, entityName, qb, andParameters); andParameters.addWhere("1", false, "=", "1", false);
} else {
for (AuditCriterion criterion : criterions) {
criterion.addToQuery(verCfg, entityName, qb, andParameters);
}
} }
} }
} }

View File

@ -48,8 +48,12 @@ public AuditDisjunction add(AuditCriterion criterion) {
public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) { public void addToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) {
Parameters orParameters = parameters.addSubParameters(Parameters.OR); Parameters orParameters = parameters.addSubParameters(Parameters.OR);
for (AuditCriterion criterion : criterions) { if (criterions.size() == 0) {
criterion.addToQuery(verCfg, entityName, qb, orParameters); orParameters.addWhere("0", false, "=", "1", false);
} else {
for (AuditCriterion criterion : criterions) {
criterion.addToQuery(verCfg, entityName, qb, orParameters);
}
} }
} }
} }

View File

@ -84,6 +84,8 @@ protected List buildAndExecuteQuery() {
qb.build(querySb, queryParamValues); qb.build(querySb, queryParamValues);
System.out.println("QUERY: " + querySb.toString());
Query query = versionsReader.getSession().createQuery(querySb.toString()); Query query = versionsReader.getSession().createQuery(querySb.toString());
for (Map.Entry<String, Object> paramValue : queryParamValues.entrySet()) { for (Map.Entry<String, Object> paramValue : queryParamValues.entrySet()) {
query.setParameter(paramValue.getKey(), paramValue.getValue()); query.setParameter(paramValue.getKey(), paramValue.getValue());

View File

@ -240,4 +240,33 @@ public void testSelectRevisionTypeQuery() {
assert result.get(1).equals(RevisionType.MOD); assert result.get(1).equals(RevisionType.MOD);
assert result.get(2).equals(RevisionType.DEL); assert result.get(2).equals(RevisionType.DEL);
} }
@Test
public void testEmptyRevisionOfEntityQuery() {
List result = getVersionsReader().createQuery()
.forRevisionsOfEntity(StrIntTestEntity.class, false, true)
.getResultList();
assert result.size() == 7;
}
@Test
public void testEmptyConjunctionRevisionOfEntityQuery() {
List result = getVersionsReader().createQuery()
.forRevisionsOfEntity(StrIntTestEntity.class, false, true)
.add(AuditRestrictions.conjunction())
.getResultList();
assert result.size() == 7;
}
@Test
public void testEmptyDisjunctionRevisionOfEntityQuery() {
List result = getVersionsReader().createQuery()
.forRevisionsOfEntity(StrIntTestEntity.class, false, true)
.add(AuditRestrictions.disjunction())
.getResultList();
assert result.size() == 0;
}
} }