@Override public void addKeyBinding(StringBuffer sql) { if (isPostInsert()) { String sequenceName = ((SequencedPrimaryKeyColumn) col).getSequenceName(); sql.append(ds.getSQLDialect().encodeNextSequenceValue(null, sequenceName)); sql.append(","); } else { super.addKeyBinding(sql); } }
private List<Object> getLastValues(Connection cx, Statement st) throws SQLException { List<Object> last = new ArrayList<>(); for (KeyFetcher fetcher : fetchers) { last.add(fetcher.getLastValue(cx, st)); } return last; }
@Override public List<Object> getNextValues(Connection cx, SimpleFeature feature) throws IOException, SQLException { List<Object> ret = new ArrayList<>(fetchers.size()); for (KeyFetcher fetcher : fetchers) { ret.add(fetcher.getNext(cx)); } return ret; }
@Override public void addKeyBinding(StringBuffer sql) { if (!isPostInsert()) { super.addKeyBinding(sql); } }
@Override public void addKeyBindings(StringBuffer sql) { for (KeyFetcher fetcher : fetchers) { fetcher.addKeyBinding(sql); } }
@Override public boolean isPostInsert() { for (KeyFetcher fetcher : fetchers) { if (fetcher.isPostInsert()) { return true; } } return false; }
@Override public void addKeyColumn(StringBuffer sql) { if (!isPostInsert()) { super.addKeyColumn(sql); } }
@Override public void addKeyColumns(StringBuffer sql) { for (KeyFetcher fetcher : fetchers) { fetcher.addKeyColumn(sql); } }
@Override public boolean hasAutoGeneratedKeys() { for (KeyFetcher fetcher : fetchers) { if (fetcher.isAutoGenerated()) { return true; } } return false; } }
/** * Returns the last generated value based on the connection. Deprecated, please * use/implement the version taking also the statement as an argument * * @param cx * @return * @throws SQLException */ public Object getLastValue(Connection cx) throws SQLException { return getLastValue(cx, null); }