Hibernate delete 问题

我试着写了一个Hibernatedelete操作,但没有从数据库删除,出现如下提示具体代码是传入的U1和U2应该是正确的,不知道是为什么代码里还有个add的操作函数却是成... 我试着写了一个Hibernate delete操作,但没有从数据库删除,出现如下提示

具体代码是

传入的U1和U2应该是正确的,不知道是为什么
代码里还有个add的操作函数却是成功的

求解释
展开
 我来答
fuhaiwei
2013-04-26 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1383万
展开全部
delete需要的是一个持久态对象,你传入的是一个瞬态对象,当然没有效果。
什么是持久态对象,你从数据库get到的,你save后的,建议找本教程,或者百度一下,总之你刚new的对象肯定是瞬态对象。
多解释一下,hibernate对象的三种状态,
一。瞬态:刚new出来的对象,特点是无持久化标志,无session关联。
二。持久态:瞬态save后变为持久态,特点是有持久化标志,有session关联。对持久态对象的改变会在提交时同步到数据库。
三。托管态。持久态关联的session关闭后,对象变为托管态。特点有持久化标志,没有关联的session。对托管态的改变不会同步到数据库,除非update他。
更多信息请找本教程仔细学习。
追问
嗯~有道理,那要delete怎么取不是瞬态的对象呢?
追答
第一:
public void save(User user) {
//传入的是瞬态。

session.save(user);

//此时user是持久态
//但是保存后,立即删除是没什么意义

}

第二:
public void delete(String username) {
List list = session.createQuery("from User where username = ?").setParameter(0, username).list();

for(User user:list) {

用session从数据库查询出的对象都是持久态。
session.delete(user);

}

}

关于学习方法,要自己学习,但不能完全自己从零学起,找本PDF教程学习或者网上找个视频学习一下基础概念才行啊。
独家解说
2013-04-26 · TA获得超过130个赞
知道答主
回答量:204
采纳率:0%
帮助的人:66.5万
展开全部
把错误贴完出来,想看看是具体是什么错,删除说不定还要级联删除呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式