aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/service/BaseJdbcService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick/service/BaseJdbcService.java')
-rw-r--r--src/main/java/com/juick/service/BaseJdbcService.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/com/juick/service/BaseJdbcService.java b/src/main/java/com/juick/service/BaseJdbcService.java
index d16dadd2..b51cbdc7 100644
--- a/src/main/java/com/juick/service/BaseJdbcService.java
+++ b/src/main/java/com/juick/service/BaseJdbcService.java
@@ -52,6 +52,11 @@ public class BaseJdbcService {
@Value("#{new Boolean('${spring.sql.init.platform}' == 'mysql')}")
private boolean haveNoOffsetDateTime;
+ @Value("#{new Boolean('${spring.sql.init.platform}' == 'sqlserver')}")
+ private boolean haveOutput;
+ @Value("#{new Boolean('${spring.sql.init.platform}' == 'h2')}")
+ private boolean haveDeltaTables;
+
public NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() {
return namedParameterJdbcTemplate;
}
@@ -124,4 +129,13 @@ public class BaseJdbcService {
}
return Types.TIMESTAMP_WITH_TIMEZONE;
}
+ public String returningId(String insertClause, String valuesClause, String idColumn) {
+ if (haveOutput) {
+ return insertClause + " OUTPUT inserted."+ idColumn + " " + valuesClause;
+ }
+ if (haveDeltaTables) {
+ return "SELECT " + idColumn + " FROM FINAL TABLE (" + insertClause + " " + valuesClause + ")";
+ }
+ return insertClause + " " + valuesClause + " RETURNING " + idColumn;
+ }
}