回复人:gongyali2005(JAVA 民工) ( 四级(中级)) 信誉:100 2007-08-26 15:14:57 得分:0inverse="true"在ADDR里设置.是在address.hbm.xml里吗? 在哪个元素里设置呢???
解决方案 »
- MyEclipse8.5 struts 配置
- 各位高手小弟遇到一个很怪异的问题··希望大家能帮忙解决一下
- XML中使用外部DTD的问题
- 大家帮忙解释一下 hibernate 中的 lazy="proxy" 和 lazy="no-proxy" 到底是什么意思,实在搞不懂
- 为什么都用servlet?而不用STRUTS呢?
- 好久没来,最近总有个想法左右我对Java的想法,Java开发难道只是不断学用别人的技术,而自己一点技术思想都没有吗?
- 安装了myeclipse以后是不是就不用安装eclipse+lomgoz+tomcat+jboss这些东西了?
- jboss中文显示全部是????的乱码,help!
- 请教高手一个关于weblogic的问题。。。。。。在线等待。。。。。。先谢了。。。。
- 流
- 请教有关Quartz的triggerMisfired的问题
- 用JBUILDER2006 编HTML代码问题
s确定不为null;
Hibernate: delete from address where AddressId=?
Hibernate: delete from students where StudentId=?
上边是hibernate打印的sql
net.sf.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 1048, SQLState: 23000
net.sf.hibernate.util.JDBCExceptionReporter logExceptions
严重: Column 'StudentId' cannot be null
Caused by: java.sql.BatchUpdateException: Column 'StudentId' cannot be null为什么hibernate要update,我是希望delete的
net.sf.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 1048, SQLState: 23000
net.sf.hibernate.util.JDBCExceptionReporter logExceptions
严重: Column 'StudentId' cannot be null
Caused by: java.sql.BatchUpdateException: Column 'StudentId' cannot be null为什么hibernate要update,我是希望delete的
解决方法: 1 把address 中的student-Id 设为可以null,那么执行update 之后自然会delete
2 在address 方的inverse=“true” 放到student那里去
两者二选一具体问题感觉出在这里 Students s=(Students)session.load(Students.class,"1");
student 没有和 address 建立联系,那么自然是不能级联的
Hibernate: delete from address where AddressId=?
Hibernate: delete from address where AddressId=?
Hibernate: delete from students where StudentId=?
为什么删除address,要通过addressId,怎么不是: delete from address where studentId=?,
这样不是可以只用一条语句就把所有相关的address都删掉,不用删一条记录,而执行一次delete, 降低性能。cascade是放到<set>,还是放到
回复人:d2lorder() ( 一级(初级)) 信誉:100
解决方法: 1 把address 中的student-Id 设为可以null,那么执行update 之后自然会delete
2 在address 方的inverse=“true” 放到student那里去
两者二选一为什么要设address表 中的student-Id为空呢???? 执行update 之后自然会delete???不是很懂这句话的意思。
inverse=“true”:到底放到哪一端呀??????????cascade是放到students.hbm.xml里的<set>,还是 address.hbm.xml的<many to one>????
为什么不把cascade放在address.hbm.xml的<many to one>里呢?????
那么当你的inverse 在address的时候,delete student 会先将address 的FK 至为null 然后删除address 最后删除student ,这就是为什么要么 inverse 放在student那里,要么FK可以为NULL至于cascade放在哪里,一般是出现在关系维护方那一块