hibernate delete 10

一对多的删除其中room是主表,visitor是子表Room.hbm.xml<?xmlversion="1.0"?><!DOCTYPEhibernate-mappingP... 一对多的删除
其中room是主表, visitor是子表
Room.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="src.com.tcl.oneToMany.model">
<class name="Room" table="room" >
<id name="id" column="id" unsaved-value="0">
<generator class="native"/>
</id>
<property name="roomCode">
<column name="room_code" />
</property>
<property name="bedCode">
<column name="bed_code"></column>
</property>
<!-- inverse 是否放弃对级联对象的控制 默认false不放弃控制 -->
<set name="visitor" cascade="all" inverse="false" lazy="true">
<key column="visitor_id"></key>
<one-to-many class="Visitor"/>
</set>
</class>
</hibernate-mapping>

Visitor.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="src.com.tcl.oneToMany.model">
<class name="Visitor" table="visitor">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name">
<column name="v_name" />
</property>
<property name="sex">
<column name="v_sex"></column>
</property>
</class>
</hibernate-mapping>

下面是java代码 删除方法
public class roomAndVisitor {
public static void main(String[] args) {
delet();
//findObject();
}
static void delet(){
Session s = HibernateUtil.getSeesion();
Transaction tx = s.beginTransaction();
Room r = new Room();
r.setId(1);
s.delete(r);
tx.commit();
s.close();
}
}

执行后严重: Could not synchronize database state with session
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61)
展开
 我来答
为一分钱而战
2010-01-11 · 超过19用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
大概看了看
<set name="visitor" cascade="all" inverse="false" lazy="true">
<key column="visitor_id"></key>
<one-to-many class="Visitor"/>
</set>
这里key应该是写的当前表被引用的key,是当前表的。
不知道你这个vistor_id有没有问题, 一般都是主表的主键被引用,
如果说你主表的确有这个vistor_id外键列,并且是引用vistor表的,
那关系纠错了,应该多对一。 而且删除也有点问题,一般都是删游离对象,不知道你把瞬时、持久、游离搞清楚没
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
moshen128
2010-01-13
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
id为1的记录表中有嘛?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式