よろしくお願いいたします。
機器管理システムをwebアプリを製作中です。
その中のロジックの一つとして、データを登録していくものがあるのですが、
「100番」から採番していきたいと思っています。
追記:使用DBは、SQLserverです。
また、この質問に関連する前回の質問は下記です。
https://teratail.com/questions/32150
条件として、すでにいくつか新規登録済みです。
(任意の番号で採番された既存のデータがすでに何件か存在している状態)
たとえば、すでに1~5という番号で採番されたデータがある状態から、新規登録をしても、
データが一件も無い状態から新規登録をしても、そこからは「100、101、102…」と採番していく
コードを書きたいのです。
後述するコードの様にまではこの掲示板の皆様からの助けを借りながらなんとか書きましたが、
この状態であると
「データが一件も無い状態から新規登録」
の場合しか100番からの採番になりません。
コードに追加したいロジックは以下です。
●(先に登録されているデータが存在すれば)
・そのデータの採番が99より小さければ
・ser(後述のコードを参照ください)の値(99)はそのまま
・nullでも、serの値(99)はそのまま
・データの採番が100以上なら、その数に+1する
後述のソースコードと併せて、どうかご教示ください。
当方はまだ初心者の為、サンプルコードなどいただければ尚幸いです。
どうぞお知恵をお貸しください。
// ser の Max 取得 //既存のデータが何件あっても、(または無くても)「100」から採番する long ser = 99;//tanizawa String val = null; EntityManager em = ServiceLocator.getInstance().getEntityManager(); Query q = Query.newQuery( "select max(record_id) from pclcm.t_anken " ); SearchResult<Object[]> sres = em.search(q); if (sres != null) { Object[] e = (Object[])sres.getFirst(); if (e[0] != null) { val = (String)e[0]; } } if (val != null) { ser = Long.parseLong(val); } ser += 1; val = String.valueOf(ser); // System.out.println("********** issueAnkenNo new anken_no = " + val); entity.setValue("record_id", val);
回答1件
あなたの回答
tips
プレビュー