Hallo an Alle,
ich habe ein Problem beim Persistieren eines Objektes. Dieses Objekt
Rqs verfügt über eine Collection vom Typ Set mit Inhalt
RqsDate. In meiner Anwendung gehe ich nun wie folgt vor:
Code:
protected String insertRqs(){
...
Set rqsDates = new HashSet(0);
Rqs rqs = createRqs();
for (int i = 0; i< countKeys ;i++ ){
RqsDate rqsdate = createRqsDate(rqs);
rqsDates.add(rqsdate);
}
rqs.setRqsDates(rqsDates);
try {
getRqsHomeInterface().commit(rqs);
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
private Rqs createRqs(){
BigDecimal sk = this.getRqsHomeInterface().getSK();
BigDecimal rqsSk = sk;
BigDecimal empSk = getUserb().getEmp_sk();
String src = "WEB";
String status = "OPEN";
char chkFlag = 'T';
char procFlag = 'T';
BigDecimal procCnt = new BigDecimal("0");
BigDecimal prty = new BigDecimal("0");
char notfFlag = 'F';
BigDecimal creTcsLoginSk = new BigDecimal("-979999976579");
Date creTs = new Date();
BigDecimal seqNum = new BigDecimal("0");
Date effCreTs = new Date();
BigDecimal effSeqNum = new BigDecimal("0");
BigDecimal rank = new BigDecimal("0");
rqs = new Rqs(rqsSk,empSk,src,status,chkFlag,procFlag,procCnt,prty,notfFlag,creTcsLoginSk,creTs,seqNum,effCreTs,effSeqNum,rank);
return rqs;
}
private RqsDate createRqsDate(Rqs rqsinst){
BigDecimal sk = this.rqsHomeInterface.getSK();
BigDecimal rqsDateSk = sk;
Rqs rqs = rqsinst;
BigDecimal empSk = getUserb().getEmp_sk();
long days = getActDate();
BigDecimal nomDate = new BigDecimal(days);
actDate += 1;
BigDecimal statusNum = new BigDecimal("0");
return new RqsDate(rqsDateSk,rqs,empSk,nomDate,statusNum);
}
Füge ich nur das Objekt
Rqs hinzu und kommentiere ich den Code für das Erzeugen von
RqsDate aus, wird dieses in die Datenbank übernommen. Erzeuge ich hingegen
RqsDates und füge sie dem Set und anschließend dem Objekt
Rqs hinzu, so wird das set nicht persistiert.
Debugge ich den Code und schaue ich mir das Objekt
Rqs vor dem Persistieren an, so sind alle notwendigen Eigenschaften gesetzt und das Set ist korrekt hinzugefügt.
Beim ausführen der Methode
persist() erscheint nur der folgende Hinweis in den Logs:
Code:
Hibernate: /*insert de.businessObjects.Rqs*/insert into TCSDBOWNER.RQS (EMP_SK, SRC, STATUS, CHK_FLAG, PROC_FLAG, PROC_CNT, PRTY, NOTF_FLAG, CRE_TCS_LOGIN_SK, CRE_TS, SEQ_NUM, PROC_START_TS, EFF_CRE_TS, EFF_SEQ_NUM, RANK, RQS_SK) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Demnach wurde nur das Objekt
Rqs persistent gemacht.
Wo ist mein Fehler? Wo habe ich etwas nicht bedacht? Danke für eure Aufmerksamkeit. Gruß,
ak