Hi,
I am currently inserting a row into a database using native SQL, using the createSQLQuery function. I was wondering if there was a better way to get the PK then doing a another query after inserting the data.
My current code it:
Code:
// insert the item
qry = "INSERT INTO item(item_name)" +
" VALUES(?)";
q = dbSession.createSQLQuery(qry);
q.setString(0, item_name);
q.executeUpdate();
// get the item id
qry = "SELECT item_id, item_name from item" +
" WHERE item_name like ? " +
" ORDER BY item_id DESC " +
" LIMIT 0,1";
q = dbSession.createSQLQuery(qry);
q.setString(0, item_name);
Iterator<Object[]> i = q.list().iterator();
if (i.hasNext()) {
Object[] rs = i.next();
this.item_id = (Integer) rs[0];
}