Skip to content

Commit

Permalink
Fix issue with AbstractEntityPersister and the creation of the RootTa…
Browse files Browse the repository at this point in the history
…bleGroup
  • Loading branch information
dreab8 committed Feb 17, 2020
1 parent 16d81eb commit 8c16e7c
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 10 deletions.
Expand Up @@ -387,6 +387,8 @@ protected void addDiscriminatorToSelect(SelectFragment select, String name, Stri

public abstract String getSubclassTableName(int j);

protected abstract String[] getSubclassTableNames();

protected abstract String[] getSubclassTableKeyColumns(int j);

protected abstract boolean isClassOrSuperclassTable(int j);
Expand Down Expand Up @@ -1267,7 +1269,7 @@ public TableGroup createRootTableGroup(
lockMode,
primaryTableReference,
sqlAliasBase,
(tableExpression) -> ArrayHelper.contains( rootTableKeyColumnNames, tableExpression ),
(tableExpression) -> ArrayHelper.contains( getSubclassTableNames(), tableExpression ),
(tableExpression, tableGroup) -> {
for ( int i = 0; i < getSubclassTableSpan(); i++ ) {
final String subclassTableName = getSubclassTableName( i );
Expand Down
Expand Up @@ -1057,6 +1057,11 @@ public String getSubclassTableName(int j) {
return subclassTableNameClosure[j];
}

@Override
protected String[] getSubclassTableNames() {
return subclassTableNameClosure;
}

public int getSubclassTableSpan() {
return subclassTableNameClosure.length;
}
Expand Down
Expand Up @@ -809,6 +809,11 @@ public String getSubclassTableName(int j) {
return subclassTableNameClosure[j];
}

@Override
protected String[] getSubclassTableNames() {
return subclassTableNameClosure;
}

public int getSubclassTableSpan() {
return subclassTableNameClosure.length;
}
Expand Down
Expand Up @@ -67,7 +67,7 @@ public class UnionSubclassEntityPersister extends AbstractEntityPersister {
private final String subquery;
private final String tableName;
//private final String rootTableName;
private final String[] subclassClosure;
private final String[] subclassTableNames;
private final String[] spaces;
private final String[] subclassSpaces;
private final Object discriminatorValue;
Expand Down Expand Up @@ -101,7 +101,7 @@ public UnionSubclassEntityPersister(
// TABLE

tableName = determineTableName( persistentClass.getTable(), jdbcEnvironment );

subclassTableNames = new String[]{tableName};
//Custom SQL

String sql;
Expand Down Expand Up @@ -146,8 +146,6 @@ public UnionSubclassEntityPersister(
// PROPERTIES

int subclassSpan = persistentClass.getSubclassSpan() + 1;
subclassClosure = new String[subclassSpan];
subclassClosure[0] = getEntityName();

// SUBCLASSES
subclassByDiscriminatorValue.put(
Expand All @@ -159,7 +157,6 @@ public UnionSubclassEntityPersister(
int k = 1;
while ( iter.hasNext() ) {
Subclass sc = (Subclass) iter.next();
subclassClosure[k++] = sc.getEntityName();
subclassByDiscriminatorValue.put( sc.getSubclassId(), sc.getEntityName() );
}
}
Expand Down Expand Up @@ -280,10 +277,6 @@ public String getDiscriminatorSQLValue() {
return discriminatorSQLValue;
}

public String[] getSubclassClosure() {
return subclassClosure;
}

@Override
public String getSubclassForDiscriminatorValue(Object value) {
return (String) subclassByDiscriminatorValue.get( value );
Expand Down Expand Up @@ -519,6 +512,11 @@ public String getSubclassTableName(int j) {
return tableName;
}

@Override
protected String[] getSubclassTableNames(){
return subclassTableNames;
}

@Override
public int getSubclassTableSpan() {
return 1;
Expand Down

0 comments on commit 8c16e7c

Please sign in to comment.