hibernate 联合主键 merge
http://topic.csdn.net/u/20090722/16/1946dd91-3900-47e9-ab85-ed7db41252de.html
entry 中的主键都是有值的,但是obj中的主键都是null,且数据库中也是空值
一头雾水啊。主键是复合主键, 单表,没有关联关系。
现在发现规律,如果 entry是全新的,merge就会出现 主键被清空的问题。
如果session缓存中,有和entry相同主键的对象存在,merge就正常。
难道是我对merge的理解有问题,必须是session中有同主键的对象存在时,才能使用merge,否则应该使用saveOrUpdate????????????????
merge是jpa中的方法,大概是hibernate要跟jpa接轨,
才出的这个方法
save---persist
通常将复合主键相关的属性,单独放到一个类中
* 此类必须实现序列化接口
* 覆写hashcode和equals方法
AbstractFlushingEventListener[line:301}: Could not synchronize database state with session
Could not execute JDBC batch update
联合主键类配置如下:
<hibernate-mapping>
<class name="com.vcmchina.credithour.model.SzGcEvaResult" table="sz_gc_eva_result" >
<composite-id name="id" class="com.vcmchina.credithour.model.SzGcEvaResultId">
<key-property name="stuNo" type="java.lang.String">
<column name="stu_no" length="20" />
</key-property>
<key-property name="projectCode" type="java.lang.String">
<column name="project_code" length="20" />
</key-property>
<key-property name="weekNo" type="java.lang.Integer">
<column name="week_no" />
</key-property>
<key-property name="syCode" type="java.lang.String">
<column name="sy_code" length="20" />
</key-property>
<key-property name="semSection" type="java.lang.String">
<column name="sem_section" length="10" />
</key-property>
<key-property name="suNo" type="java.lang.String">
<column name="su_no" length="20" />
</key-property>
<key-property name="semNo" type="java.lang.String">
<column name="sem_no" length="20" />
</key-property>
</composite-id>
<property name="secType" type="java.lang.String">
<column name="sec_type" length="10" not-null="true" />
</property>
<property name="graType" type="java.lang.String">
<column name="gra_type" length="10" not-null="true" />
</property>
<property name="semFlag" type="java.lang.String">
<column name="sem_flag" length="10" not-null="true" />
</property>
<property name="evaScore" type="java.lang.Integer">
<column name="eva_score" not-null="true" />
</property>
<property name="recordData" type="java.lang.String">
<column name="record_data" length="30" not-null="true" />
</property>
<property name="empName" type="java.lang.String">
<column name="emp_name" length="50" not-null="true" />
</property>
</class>
</hibernate-mapping>
开始采用的是
public void addSzGcEvaResult(SzGcEvaResult evaResult) {
// TODO Auto-generated method stub
this.getHibernateTemplate().save(evaResult);
}
后来改用merge方法就没有问题了:
public void addSzGcEvaResult(SzGcEvaResult evaResult) {
// TODO Auto-generated method stub
this.getHibernateTemplate().merge(evaResult);
}
我感觉是对象状态的问题,因为我给对象实例化了联合主键,hibernate 认为它不再是瞬态,而是托管状态。
save() --瞬态状态调用,状态变为持久(POJO)
merge()--脱管状态时候调用,状态不变
hibernate 联合主键 merge相关推荐
- hibernate联合主键
2019独角兽企业重金招聘Python工程师标准>>> 在日常开发中,有时候会出现要求两个或以上字段联合做主键的表,就两个字段做主键为例,用户表的联合主键为firstname和las ...
- 自底向上带你逆向解析hibernate联合主键
参考1.参考2 文章目录 1 最后生成具有复合主键的表 2 People.hbm.xml文件 3 配置映射 4 java类 5 action中联合主键赋值方式 1 最后生成具有复合主键的表 数据库表的 ...
- hibernate 联合主键
xml方式处理联合主键: 以有两个主键:id和name的student表为例. 先创建个主键类: package com.bjsxt.hibernate; //黑色为必写项 public class ...
- hibernate ——联合主键
接上一篇博客:http://www.cnblogs.com/tengpan-cn/p/5551323.html 主键类不需要写任何注解,表对象类使用@IdClass注解 在表对象类前面加@IdClas ...
- hibernate联合主键 注解方式
转载自https://my.oschina.net/yotoo/blog/265571 方法一:主键类用@Embeddable,pojo类仍然用@Entity但是引用主键类的对象用@Id 主键pojo ...
- java 联合主键 注解_Hibernate的联合主键注解方式
Hibernate联合主键注解方式,即是Hibernate中某一张表出现多个字段联合为唯一主键的情况.这时候就可以使用Hibernate的联合主键来操作.以用户表为例子,userId+userName ...
- oracle联合主键去重,联合主键的查询语句怎么写
1.联合主键,SQL语句怎么写 建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍. 1.在数据库提供的GUI环境中建立(以SQL7为例). 输入表 ...
- Hibernate中用到联合主键的使用方法,为何要序列化,为何要重写hashcode 和 equals 方法...
联合主键用Hibernate注解映射方式主要有三种: 第一.将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为 ...
- Hibernate JPA-实体类定义联合主键@IdClass、@EmbeddedId注解
文章目录 一.复合主键@idClass.@Embeddable @idClass @Embeddable 网上实例demo 二.参考 一.复合主键@idClass.@Embeddable 可参照官方文 ...
最新文章
- 因女朋友的一个建议,这位程序员创立仅 551 天公司就被 10 亿美元收购了
- 回收 PV - 每天5分钟玩转 Docker 容器技术(152)
- 01_SMC_Calling_Convention(SMCCC)
- jar包和war包差别
- 请问python语言的语法特点_Python3笔记004- 2.1 python的语法特点
- AAAI2021年,录用了165篇图神经网络相关论文,图网络究竟在研究什么?
- 4. Linux 高性能服务器编程 --- TCP/IP 通信
- visio2013画图时两条直线交叉, 如何让它不弯曲
- 慧翔PMP培训及感想
- DLang 编译实验
- UML图学习之五 序列图(顺序图)和协作图
- 埃睿迪展台热度持续 为绿色城市建设进言献策
- CRM客户关系管理:赢得和留住客户的指南
- 浅谈程序环境和预处理
- ASPICE系列:顺利通过ASPICE流程软件单元验证(SWE.4)
- Android 面向切面编程(AOP)
- Arduino读取GPS模块
- OFD[2]-第二章 期货市场和期货合约套期保值应用
- 人工智能实验:蚁群算法求解TSP问题(Python代码实现,附有详细实验报告地址)
- 毕业设计----多功能电子词典的设计与实现效果展示
热门文章
- 10.1.4 HTML练习题
- 11.2.4 jQuery动画
- 2019第十届蓝桥杯C/C++ A组省赛 —— 第二题: 数列求值
- 【MFC】类的层次结构图
- 【STM32】FreeRTOS简介
- 【Android】Android中WIFI开发总结(一)
- 计算机文化基础在线作业答案,中国石油大学17年秋《计算机文化基础》第一次在线作业答案...
- oracle10_client的安装,Oracle10.2ClientWindows安装.doc
- 杭电oj java printf_杭电oj1042题大数,java,百思不得其解为何WA,求指教
- python写的一个贴吧爬虫_Python-简单百度贴吧爬虫