mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-20 01:55:02 +00:00
HHH-9302 - SQLGrammarException with @DiscriminatorColumn in an inheritance hierarchy
This commit is contained in:
parent
4776ff0913
commit
ca9e0424b4
@ -887,7 +887,6 @@ private static String[][] reverse(String[][] objects, int n) {
|
||||
return temp;
|
||||
}
|
||||
|
||||
|
||||
public String fromTableFragment(String alias) {
|
||||
return getTableName() + ' ' + alias;
|
||||
}
|
||||
@ -902,11 +901,24 @@ public void addDiscriminatorToSelect(SelectFragment select, String name, String
|
||||
select.setExtraSelectList( discriminatorFragment( name ), getDiscriminatorAlias() );
|
||||
}
|
||||
else {
|
||||
if ( getEntityMetamodel().getSuperclass() != null ) {
|
||||
name = generateTableAlias( name, getRootHierarchyClassTableIndex() );
|
||||
}
|
||||
select.addColumn( name, explicitDiscriminatorColumnName, discriminatorAlias );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int getRootHierarchyClassTableIndex() {
|
||||
final String rootHierarchyClassTableName = naturalOrderTableNames[0];
|
||||
for ( int i = 0; i < subclassTableNameClosure.length; i++ ) {
|
||||
if ( subclassTableNameClosure[i].equals( rootHierarchyClassTableName ) ) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private CaseFragment discriminatorFragment(String alias) {
|
||||
CaseFragment cases = getFactory().getDialect().createCaseFragment();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user