社区
Java EE
帖子详情
关于hibernate怎么判断是更新还是插入
剑客2
2011-10-21 09:48:19
不知道你这个记录的主键在数据库中有没有,怎么用hibernate判断,在线等!谢谢!非常感谢!
...全文
308
11
打赏
收藏
关于hibernate怎么判断是更新还是插入
不知道你这个记录的主键在数据库中有没有,怎么用hibernate判断,在线等!谢谢!非常感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kouyiSC
2011-10-21
打赏
举报
回复
直接传对象进去就可以用啦。。。。网上例子一堆。。。。
kouyiSC
2011-10-21
打赏
举报
回复
两种方式根据你的程序来选吧。
分析一下:
1. 如果你的表主键有自增的话,那么你这个记录的主键在数据库中是肯定没有的。。这时候肯定是插入。。
只有当你传入的对象包含主键值时,才可能是更新操作。
这种情况下。。你直接判断你传入的对象是否包含主键ID值,就能判断是更新还是插入。。
那就可以推测楼主的表没有主键自增。。。否则不可能不知道是更新还是插入。。。
2. 如果你的表没有主键自增的话,那说明你每次操作的对象都带有主键值。导致你不知道是更新还是插入。那么这个时候通常可以根据saveorupdate来走捷径。。或者通过查看主键值是否存在。。。然后再修改。。。
烈空小Y
2011-10-21
打赏
举报
回复
如果你在hibernate配置文件中配置了
<property name="show_sql">true</property>
<property name="format_sql">true</property>
他们的话,在控制台不就能很好的看到吗
还有就是你写hql语句的时候自己不清楚吗
nizhicheng
2011-10-21
打赏
举报
回复
好像也不能这么说,没定义自增 主键不能为NULL
[Quote=引用 5 楼 nizhicheng 的回复:]
那贴下你错误信息吗~~有肯能是主键问题~~表的主键没定义自增的话~~
就不能用saveOrupdate
[/Quote]
fainfy
2011-10-21
打赏
举报
回复
http://topic.csdn.net/u/20110918/13/b362c16f-8b94-401f-813a-861182273428.html
nizhicheng
2011-10-21
打赏
举报
回复
那贴下你错误信息吗~~有肯能是主键问题~~表的主键没定义自增的话~~
就不能用saveOrupdate
剑客2
2011-10-21
打赏
举报
回复
我用了saveorupdate就是出错,不知怎么搞的,谁可以给几个例子看看吗?
chris_zcl
2011-10-21
打赏
举报
回复
用ID通过find方法查询一下,看看返回是否为null呗~
nizhicheng
2011-10-21
打赏
举报
回复
楼上说的是 ~~~就是看你对象的主键ID 我记得有个 saveOrupdate方法 就是这样~~
而且很恶心 修改的对象必须通过主键来查找 否则对象修改 数据库是没有保存的
也有可能是我的事务代码本身没写好的关系
剑神一笑
2011-10-21
打赏
举报
回复
看你传入的实体主键ID是不是为null或“”啊
修改id肯定不为空的或者你直接用saveorupdate方法
剑客2
2011-10-21
打赏
举报
回复
我觉得saveorupdate就是你批量插入或者更新的时候,你的批量不能重复,不然出错,谢谢大家,我的问题解决了
毕业设计+源码(项目管理系统)完整框架
项目管理系统界面高清截图http://yaerfeng1989.blog.163.com相册。绝版作品!一切都只是曾经,神马都是浮云!现将其开源 ssh+jquery+servlet+json+dwr+ajax....... 数据库可配置。默认mysql。运行先改jdbc.properties和
hibernate
.cfg.xml里面的数据库配置!数据库最好事先存在。 再运行test包的testCreateDB-》testData(
插入
数据!)即可运行!
Hibernate
的save()方法如何
判断
是insert还是update
Hibernate
的save()方法如何
判断
是insert还是update 之前大概了解在使用save()方法的时候,要是执行
更新
操作,就先查再调用save();要是执行
插入
操作,就新建一个对象,将属性赋值,再调用save()方法。 今天研究了下save方法的源码,如下 public T save(T entity) throws DataAccessException { if(entity.isNew()) { this.preInsert(entity);
全面掌握
Hibernate
框架技术
全面包含
Hibernate
相关技术,老司机手把手带你一起飞,让你少走弯路。包含
Hibernate
相关技术:
Hibernate
简介、Session API、对象的状态查询操作(主键查询、HQL查询、Criteria查询、SQL查询、命名查询、doWork)关联关系:多对一、一对多、多对多、一对一组件映射、继承映射、缓存、JPA反向工程、封装GenericDao教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!
Hibernate
插入
(
更新
)不了数据(或者
插入
(
更新
)失败)
败了,太粗心了。如果你确定你的方法和配置文件没问题的话,那就多看一下配置文件(
hibernate
.cfg.xml)里是不是有 true这个属性,如果有且值为true,那是你的方法和其他配置问题了。 如果没这个属性,它的默认值是false;所以不管你是session.flush(),还是session.close()都是没用的,还是
插入
不了数据,原因是最后没有提交到数据库,这
有关
Hibernate
/JPA的批量
插入
更新
本文将研究如何使用
Hibernate
/JPA进行批量
插入
或
更新
实体。批量处理使我们可以在单个网络调用中向数据库发送一组SQL语句。这样,可以优化应用程序的网络和内存使用率。 1、创建实体 首先,创建一个School实体: @Entity @Data public class School { @Id @GeneratedValue(strategy = Generati...
Java EE
67,513
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章