多對一(主鍵)關係,create問題
我建立了兩個實體bean,關係為多對一,在多的實體create時,報錯:
"javax.ejb.EJBException: When a cmp-field and a cmr-field (relationship) are mapped to the same column, the setXXX method for the cmp-field may not be called. The cmp-field is read-only."
然後上網查發現問題是:
當你希望在CMP中定義一個Many-to-One Relationships指向另一個CMP的PK欄位時,這個cmp field不能使用setXXX方法更新。在WLS和EJB 2.0規範的10.3.1部分已經提到了這一點。
網上有個文章給瞭解決方法:
解決:
1)在ejbCreate方法中設定除關聯欄位以外的其它所有欄位值
2)透過relations CMP filed的值用ejbPostCreate方法找到relations CMP ejb
3) 用找到的CMP ejb去設定關聯欄位的值
以下程式碼是在相關entity EJB中呼叫ejbPostCreate方法設定欄位值的例子:
public void ejbPostCreate(String id, String name, String type) throws CreateException {
……
try{
Context ctx = new InitialContext();
TypeInfoHome tih = (TypeInfoHome)ctx.lookup("TypeInfo");
//This is the relations CMP EJB home
……
TypeInfo ti= tih.findByPrimaryKey("1");
// find the relations CMP EJB object.
……
this.setTypeInfo(ti);
}catch(Exception e){
System.out.println("_______________________________________");
e.printStackTrace();
}
……}
可例子中要設定的欄位直接給了一個數值:1,TypeInfo ti= tih.findByPrimaryKey("1");
但我是由客戶提供的數值,如下拉中選擇的,那麼提交時
我如何把另一個bean的鍵值傳給這個bean的ejbPostCreate呢,
各位仁兄能否給個具體的做法!!!!!!!!
"javax.ejb.EJBException: When a cmp-field and a cmr-field (relationship) are mapped to the same column, the setXXX method for the cmp-field may not be called. The cmp-field is read-only."
然後上網查發現問題是:
當你希望在CMP中定義一個Many-to-One Relationships指向另一個CMP的PK欄位時,這個cmp field不能使用setXXX方法更新。在WLS和EJB 2.0規範的10.3.1部分已經提到了這一點。
網上有個文章給瞭解決方法:
解決:
1)在ejbCreate方法中設定除關聯欄位以外的其它所有欄位值
2)透過relations CMP filed的值用ejbPostCreate方法找到relations CMP ejb
3) 用找到的CMP ejb去設定關聯欄位的值
以下程式碼是在相關entity EJB中呼叫ejbPostCreate方法設定欄位值的例子:
public void ejbPostCreate(String id, String name, String type) throws CreateException {
……
try{
Context ctx = new InitialContext();
TypeInfoHome tih = (TypeInfoHome)ctx.lookup("TypeInfo");
//This is the relations CMP EJB home
……
TypeInfo ti= tih.findByPrimaryKey("1");
// find the relations CMP EJB object.
……
this.setTypeInfo(ti);
}catch(Exception e){
System.out.println("_______________________________________");
e.printStackTrace();
}
……}
可例子中要設定的欄位直接給了一個數值:1,TypeInfo ti= tih.findByPrimaryKey("1");
但我是由客戶提供的數值,如下拉中選擇的,那麼提交時
我如何把另一個bean的鍵值傳給這個bean的ejbPostCreate呢,
各位仁兄能否給個具體的做法!!!!!!!!
相關文章
- hibernate 關係對映之 主鍵關聯一對一
- JPA(3) 表關聯關係(多對一、一對多、多對多、一對一)
- gorm 關係一對一,一對多,多對多查詢GoORM
- 主鍵與主鍵索引的關係索引
- MyBatis加強(1)~myBatis物件關係對映(多對一關係、一對多關係)、延遲/懶載入MyBatis物件
- Spring Data JPA 之 一對一,一對多,多對多 關係對映Spring
- 操作hibernate多主鍵的問題?
- Spring Boot 入門系列(二十八) JPA 的實體對映關係,一對一,一對多,多對多關係對映!Spring Boot
- hibernate(三) 一對多對映關係
- 【Evil 域】SQL函式——將一對多關係轉換成一對一關係SQL函式
- 操作hibernate多主鍵的問題?(2)
- EF Code First中的主外來鍵約定和一對一、一對多關係的實現
- 關於Hibernate一對多關聯儲存問題
- 多對多關係<EntityFramework6.0>Framework
- Hibernate對映檔案一對多關係薦
- JPA中對映關係詳細說明(一對多,多對一,一對一、多對多)、@JoinColumn、mappedBy說明APP
- 父表修改與外來鍵的關係(主鍵DML與外來鍵的關係)
- 由一個博問學到的SQL查詢方法 (一道多對多關係查詢的面試題)SQL面試題
- hibernate(四) 雙向多對多對映關係
- 基於關鍵詞及問題主題的問題相似度計算
- Laravel 中的多對多關係詳解Laravel
- 6.Hibernate多對多關係建立
- 域名和ip是多對多的關係
- mORMot2 定義多對多關係ORM
- Laravel 之多對多的關係模型Laravel模型
- create 與 store中的關係
- 關於Hibernate多層1對多關係查詢
- 不寫程式碼也可以處理一對多的關係,一鍵生成前後端程式碼後端
- hibernate中多對多關係的維護
- MyBatis表關聯 一對多 多對一 多對多MyBatis
- Hibernate中有一對多關係,如何插入資料呢
- 使用者和角色多對多問題,物件間關聯處理問題物件
- 請教cmp關聯的問題,1:1,1:n多關係
- 我的一個主表和一個從表是一對多關係,但是從表又與其他表有一對多等關係,
- 多對多的操作問題
- 資料庫表中一對多關係怎麼設計?資料庫
- 關於資料庫表記錄主鍵生成的問題?資料庫
- 資料庫多對多表關係資料資料庫