2010-02-18 393 views
0

嗨,我是新來的休眠技術,我有幾個問題。休眠映射的困惑

假設是否有兩個表。例如:

 
Table1 
    table1_ID 
    table1_value 

Table2 
    table2_ID 
    table2_name 

如果table1_ID是表1的主鍵和(table2_ID和table2_name) - 表2的主鍵。

表2的table2_ID正在引用表1的table1_ID(休眠之一 - - 許多映射)

我有table1_ID序列發生器。如果我嘗試插入,我只會給table1_value和table2_name賦值。那麼現在將爲table1_ID創建的序列將被分配給table2_ID?因爲我得到錯誤,說明「null不能插入table2.ID」。如何解決這個問題?

然後刪除......如果我刪除gethibernatetype().delete(objectofTable1) ....它再次扔我錯誤

 
SQL Error: 2292, SQLState: 23000 
[ERROR] 2010-02-18 19:58:37 (JDBCExceptionReporter.java:logExceptions:78) 
ORA-02292: integrity constraint violated - child record found 

[ERROR] 2010-02-18 19:58:37 (AbstractFlushingEventListener.java:performExecutions:301) 
Could not synchronize database state with session 
org.hibernate.exception.ConstraintViolationException: could not delete: 

我已經設置ondelete=cascade了。如何解決這個問題?

+0

請顯示您的映射 – 2010-02-18 16:32:23

+0

@Senthilnathan - 您的問題是否已解決?您必須將答案標記爲已接受(投票計數器下面的勾號) – Bozho 2010-02-23 20:53:46

回答

0

在你的映射中你有一個集合。您必須將其設置爲cascade=all(或者如果使用註釋 - cascade=CascadeType.ALL