File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed
hibernate-reactive-core/src/main/java/org/hibernate/reactive/id/insert Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change 10
10
11
11
import org .hibernate .dialect .Dialect ;
12
12
import org .hibernate .dialect .PostgreSQLDialect ;
13
+ import org .hibernate .dialect .SQLServerDialect ;
13
14
import org .hibernate .engine .jdbc .mutation .JdbcValueBindings ;
14
15
import org .hibernate .engine .jdbc .mutation .group .PreparedStatementDetails ;
15
16
import org .hibernate .engine .jdbc .spi .JdbcServices ;
@@ -54,6 +55,23 @@ private static String createInsert(PreparedStatementDetails insertStatementDetai
54
55
if ( instanceOf ( dialect , PostgreSQLDialect .class ) ) {
55
56
return insertStatementDetails .getSqlString () + " returning " + identifierColumnName ;
56
57
}
58
+ if ( instanceOf ( dialect , SQLServerDialect .class ) ) {
59
+ String sql = insertStatementDetails .getSqlString ();
60
+ int index = sql .lastIndexOf ( " returning " + identifierColumnName );
61
+ // FIXME: this is a hack for HHH-16365
62
+ if ( index > -1 ) {
63
+ sql = sql .substring ( 0 , index );
64
+ }
65
+ if ( sql .endsWith ( "default values" ) ) {
66
+ index = sql .indexOf ( "default values" );
67
+ sql = sql .substring ( 0 , index );
68
+ sql = sql + "output inserted." + identifierColumnName + " default values" ;
69
+ }
70
+ else {
71
+ sql = sql .replace ( ") values (" , ") output inserted." + identifierColumnName + " values (" );
72
+ }
73
+ return sql ;
74
+ }
57
75
return insertStatementDetails .getSqlString ();
58
76
}
59
77
You can’t perform that action at this time.
0 commit comments