1
時,我有一個會話bean提供的商業方法,其中創建若干個CMP實體bean,像這樣是EJB 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();
}
}
的MyBean
的製作方法簡單地創建一個新豆與newID
。但是,上述代碼僅適用於number = 1
。如果number > 1
,它嘗試創建具有相同ID的第二個bean(System.out.println(newID);
打印相同的值)。我猜新bean尚未存儲在數據庫中,因此查詢返回相同的值。對此可以做些什麼?
非常感謝!