您好我是hibernate技术的新手,我几乎没有问题。
假设有两个表。例如:
Table1 table1_ID table1_value Table2 table2_ID table2_name
如果table1_ID是table1的主键和(table2_ID和table2_name) - table2的主键。
Table2的table2_ID引用Table1的table1_ID(在hibernate一对多映射中)
我有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 :(得分:0)
在你的映射中你有一个集合。您必须将其设置为cascade=all
(或者如果使用注释 - cascade=CascadeType.ALL