mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-16 16:15:06 +00:00
HHH-11892 - Fix loading audit history when using a map with entity-type keys.
This commit is contained in:
parent
39196915f1
commit
e992ff04c9
@ -96,10 +96,10 @@ public ThreeEntityQueryGenerator(
|
|||||||
final QueryBuilder removedQuery = commonPart.deepCopy();
|
final QueryBuilder removedQuery = commonPart.deepCopy();
|
||||||
createValidDataRestrictions(
|
createValidDataRestrictions(
|
||||||
globalCfg, auditStrategy, referencedIdData, versionsMiddleEntityName, validQuery,
|
globalCfg, auditStrategy, referencedIdData, versionsMiddleEntityName, validQuery,
|
||||||
validQuery.getRootParameters(), true, componentData
|
validQuery.getRootParameters(), true, indexIdData, componentData
|
||||||
);
|
);
|
||||||
createValidAndRemovedDataRestrictions(
|
createValidAndRemovedDataRestrictions(
|
||||||
globalCfg, auditStrategy, referencedIdData, versionsMiddleEntityName, removedQuery, componentData
|
globalCfg, auditStrategy, referencedIdData, versionsMiddleEntityName, removedQuery, indexIdData, componentData
|
||||||
);
|
);
|
||||||
|
|
||||||
queryString = queryToString( validQuery );
|
queryString = queryToString( validQuery );
|
||||||
@ -144,7 +144,7 @@ private QueryBuilder commonQueryPart(
|
|||||||
private void createValidDataRestrictions(
|
private void createValidDataRestrictions(
|
||||||
GlobalConfiguration globalCfg, AuditStrategy auditStrategy,
|
GlobalConfiguration globalCfg, AuditStrategy auditStrategy,
|
||||||
MiddleIdData referencedIdData, String versionsMiddleEntityName, QueryBuilder qb,
|
MiddleIdData referencedIdData, String versionsMiddleEntityName, QueryBuilder qb,
|
||||||
Parameters rootParameters, boolean inclusive, MiddleComponentData... componentData) {
|
Parameters rootParameters, boolean inclusive, MiddleIdData indexIdData, MiddleComponentData... componentData) {
|
||||||
final String revisionPropertyPath = verEntCfg.getRevisionNumberPath();
|
final String revisionPropertyPath = verEntCfg.getRevisionNumberPath();
|
||||||
final String originalIdPropertyName = verEntCfg.getOriginalIdPropName();
|
final String originalIdPropertyName = verEntCfg.getOriginalIdPropName();
|
||||||
final String eeOriginalIdPropertyPath = MIDDLE_ENTITY_ALIAS + "." + originalIdPropertyName;
|
final String eeOriginalIdPropertyPath = MIDDLE_ENTITY_ALIAS + "." + originalIdPropertyName;
|
||||||
@ -174,7 +174,7 @@ private void createValidDataRestrictions(
|
|||||||
INDEX_ENTITY_ALIAS + "." + revisionPropertyPath,
|
INDEX_ENTITY_ALIAS + "." + revisionPropertyPath,
|
||||||
INDEX_ENTITY_ALIAS + "." + verEntCfg.getRevisionEndFieldName(),
|
INDEX_ENTITY_ALIAS + "." + verEntCfg.getRevisionEndFieldName(),
|
||||||
false,
|
false,
|
||||||
referencedIdData,
|
indexIdData,
|
||||||
revisionPropertyPath,
|
revisionPropertyPath,
|
||||||
originalIdPropertyName,
|
originalIdPropertyName,
|
||||||
INDEX_ENTITY_ALIAS,
|
INDEX_ENTITY_ALIAS,
|
||||||
@ -212,7 +212,7 @@ private void createValidDataRestrictions(
|
|||||||
private void createValidAndRemovedDataRestrictions(
|
private void createValidAndRemovedDataRestrictions(
|
||||||
GlobalConfiguration globalCfg, AuditStrategy auditStrategy,
|
GlobalConfiguration globalCfg, AuditStrategy auditStrategy,
|
||||||
MiddleIdData referencedIdData, String versionsMiddleEntityName,
|
MiddleIdData referencedIdData, String versionsMiddleEntityName,
|
||||||
QueryBuilder remQb, MiddleComponentData... componentData) {
|
QueryBuilder remQb, MiddleIdData indexIdData, MiddleComponentData... componentData) {
|
||||||
final Parameters disjoint = remQb.getRootParameters().addSubParameters( "or" );
|
final Parameters disjoint = remQb.getRootParameters().addSubParameters( "or" );
|
||||||
// Restrictions to match all valid rows.
|
// Restrictions to match all valid rows.
|
||||||
final Parameters valid = disjoint.addSubParameters( "and" );
|
final Parameters valid = disjoint.addSubParameters( "and" );
|
||||||
@ -222,7 +222,7 @@ private void createValidAndRemovedDataRestrictions(
|
|||||||
final String revisionTypePropName = getRevisionTypePath();
|
final String revisionTypePropName = getRevisionTypePath();
|
||||||
// Excluding current revision, because we need to match data valid at the previous one.
|
// Excluding current revision, because we need to match data valid at the previous one.
|
||||||
createValidDataRestrictions(
|
createValidDataRestrictions(
|
||||||
globalCfg, auditStrategy, referencedIdData, versionsMiddleEntityName, remQb, valid, false, componentData
|
globalCfg, auditStrategy, referencedIdData, versionsMiddleEntityName, remQb, valid, false, indexIdData, componentData
|
||||||
);
|
);
|
||||||
// ee.revision = :revision
|
// ee.revision = :revision
|
||||||
removed.addWhereWithNamedParam( revisionPropertyPath, "=", REVISION_PARAMETER );
|
removed.addWhereWithNamedParam( revisionPropertyPath, "=", REVISION_PARAMETER );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user