@@ -832,8 +832,32 @@ private static Ejb3DiscriminatorColumn processJoinedDiscriminatorProperties(
832
832
// we want to process the discriminator column if either:
833
833
// 1) There is an explicit DiscriminatorColumn annotation && we are not told to ignore them
834
834
// 2) There is not an explicit DiscriminatorColumn annotation && we are told to create them implicitly
835
- if ( ( discriminatorColumnAnnotation != null && !mappings .ignoreExplicitDiscriminatorColumnForJoinedInheritance () )
836
- || ( discriminatorColumnAnnotation == null && mappings .useImplicitDiscriminatorColumnForJoinedInheritance () ) ) {
835
+ final boolean generateDiscriminatorColumn ;
836
+ if ( discriminatorColumnAnnotation != null ) {
837
+ if ( mappings .ignoreExplicitDiscriminatorColumnForJoinedInheritance () ) {
838
+ LOG .debugf ( "Ignoring explicit DiscriminatorColumn annotation on " , clazzToProcess .getName () );
839
+ generateDiscriminatorColumn = false ;
840
+ }
841
+ else {
842
+ LOG .applyingExplicitDiscriminatorColumnForJoined (
843
+ clazzToProcess .getName (),
844
+ AvailableSettings .IGNORE_EXPLICIT_DISCRIMINATOR_COLUMNS_FOR_JOINED_SUBCLASS
845
+ );
846
+ generateDiscriminatorColumn = true ;
847
+ }
848
+ }
849
+ else {
850
+ if ( mappings .useImplicitDiscriminatorColumnForJoinedInheritance () ) {
851
+ LOG .debug ( "Applying implicit DiscriminatorColumn using DiscriminatorColumn defaults" );
852
+ generateDiscriminatorColumn = true ;
853
+ }
854
+ else {
855
+ LOG .debug ( "Ignoring implicit (absent) DiscriminatorColumn" );
856
+ generateDiscriminatorColumn = false ;
857
+ }
858
+ }
859
+
860
+ if ( generateDiscriminatorColumn ) {
837
861
final DiscriminatorType discriminatorType = discriminatorColumnAnnotation != null
838
862
? discriminatorColumnAnnotation .discriminatorType ()
839
863
: DiscriminatorType .STRING ;
0 commit comments