私は私が財産MySQLデータベースから休止状態にテーブルから最後に挿入IDを取得します
@Column宣言しているアイテムの名前付きエンティティ持っている(名前=「ITEM_CODE」、ユニーク=真、長さ= 30) プライベートString itemCode
対応するテーブルに新しい項目を挿入していますが、PROという接頭辞を付けて一意のコードを生成しようとしていて、次にRandomクラスを使用して生成された乱数を連結しています。 私はまた、データベースに挿入された最後のアイテムIDを取得し、idを1つ追加して、それを製品コードに接尾辞として追加しようとしています。 私の目的を達成するために私のコードは、私はまた、メソッド本体のコードの行を使用して試みた
パブリック文字列generateItemCode(){
String query = "SELECT max(i.id) FROM ITEM i";
List list = sessionFactory.getCurrentSession().createQuery(query).list();
int nextInsertId = ((Integer) list.get(0)).intValue() + 1;
Random random = new Random();
int number = random.nextInt(9999 - 1 + 1) + 1;
return "" + number+nextInsertId;
}
あります。
int maxId= (Integer)sessionFactory.getCurrentSession().createQuery("select max(id) from items").uniqueResult();
上記のコードは機能しません。 最後に挿入されたIDはどのように取得できますか?それを行う簡単な方法はありますか? ありがとうございます。
あなたはHibernateのIDジェネレータを使用していない理由:、一緒に作品を置くために、次の動作するはず
? – markbernard