ビジネス メソッドを提供するセッション Bean があります。このメソッドでは、次のようないくつかの CMP エンティティ Bean が作成されます。
public void businessMethod(int number) {
try {
MyBeanHome home = lookupMyBean();
DataSource dataSource = getMyDataSource();
Statement statement = dataSource.getConnection().createStatement();
ResultSet result;
String tableName = "MYBEAN";
for (int i = 0; i < number; i++) {
result = statement.executeQuery("select max(ID) + 1 from " + tableName);
result.next();
int newID = result.getInt(1);
System.out.println(newID);
MyBeanLocal lineLocal = home.create(newID);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
の create メソッドはMyBean
、 で新しい Bean を作成するだけnewID
です。ただし、上記のコードはnumber = 1
. の場合number > 1
、同じ ID を持つ 2 番目の Bean を作成しようとします (System.out.println(newID);
同じ値を出力します)。新しい Bean はまだデータベースに保存されていないため、クエリは同じ値を返していると思います。これには何ができますか?
どうもありがとう!