Skip to content

Commit 75feac8

Browse files
committed
HHH-19300 constraint interpretation improvements for Oracle
1 parent 2b1b02f commit 75feac8

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

hibernate-core/src/main/java/org/hibernate/dialect/OracleDialect.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,7 +1119,9 @@ public SequenceInformationExtractor getSequenceInformationExtractor() {
11191119

11201120
@Override
11211121
public String getSelectGUIDString() {
1122-
return getVersion().isSameOrAfter( 23 ) ? "select rawtohex(sys_guid())" : "select rawtohex(sys_guid()) from dual";
1122+
return getVersion().isSameOrAfter( 23 )
1123+
? "select rawtohex(sys_guid())"
1124+
: "select rawtohex(sys_guid()) from dual";
11231125
}
11241126

11251127
@Override
@@ -1130,8 +1132,12 @@ public ViolatedConstraintNameExtractor getViolatedConstraintNameExtractor() {
11301132
private static final ViolatedConstraintNameExtractor EXTRACTOR =
11311133
new TemplatedViolatedConstraintNameExtractor( sqle ->
11321134
switch ( extractErrorCode( sqle ) ) {
1133-
case 1, 2291, 2292 -> extractUsingTemplate( "(", ")", sqle.getMessage() );
1134-
case 1400 -> null; // simple nullability constraint
1135+
case 1, 2291, 2292, 2290 ->
1136+
extractUsingTemplate( "(", ")", sqle.getMessage() );
1137+
case 1400, 1407 ->
1138+
extractUsingTemplate( "(", ")",
1139+
// Oracle quotes the column in this message, which is ugly
1140+
sqle.getMessage().replace( "\"", "" ) );
11351141
default -> null;
11361142
});
11371143

0 commit comments

Comments
 (0)