После добавления заказа в базу данных HSQL через мой объект OrderDAO я хочу иметь возможность получить порядковый номер, который был назначен заказу при вставке.
У меня есть это для моего PreparedStatement
:
public long saveOrder(Order order) {
long orderId = 0;
try (Connection conn = MyDataSource.getDataSource().getConnection();
PreparedStatement ps = conn.prepareStatement("INSERT INTO orders(id, order_number) VALUES (NEXT VALUE FOR seq1, ?)",
PreparedStatement.RETURN_GENERATED_KEYS)) {
ps.setString(1, order.getOrderNumber());
ps.execute();
ResultSet rs = ps.getResultSet();
if (rs.next()) {
orderId = rs.getLong(1);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return orderId;
}
Я бы предположил, что после выполнения запроса и запроса его набора результатов первым столбцом в наборе результатов будет порядковый номер.Но, похоже, я так не работаю.
Куда я с этим ошибаюсь?