hibernate3.6-联合主键注解以及openSession和getCurrentSession区别
【联合主键】
>>>>配置方式:xml:
1. Student中单独创建StudentPk主键实体类
2. 配置:
<composite-id name="studentPK">
<key-property name="name" column="username" />
<key-property name="nickname" column="nickname" />
</composite-id>
>>>>注解方式:annotation
1. Teacher中单独创建TeacherPk主键实体类
2.注解
** 注解方式1:【一个注解】※常用
<1>
@EmbeddedId
public TeacherPk getTeacherPk()
<2>主键类实现Serializable接口+重写hashCode和equals方法。
TeacherPk implements Serializable{
@Override
public int hashCode()
@Override
public boolean equals(Object obj)
}
**注解方式2:【两个注解】
<1>
@Embeddable
public class TeacherPk implements Serializable
@Id
public TeacherPk getTeacherPk()
<2>同上
【openSession和getCurrentSession区别】
1. openSession产生的实例是SessionImpl.class的实例;
getCurrentSession产生的是$Proxy代理类实例
2. openSession每次调用产生新的Session;
getCurrentSession在第一次调用时生成新的Session,之后关联到上下文,
在事务完成(commit/rollback)之前,每次得到的都是已经存在的Session,
直到事务提交或者回滚。
3. openSession的Session需要手动close();
getCurrentSession的会在事务完成(commit/rollback)时自动close。
4. openSession的可以直接使用。
getCurrentSession需要再hibernate的配置文件中配置current_session_context_class.。比如:
<property name="current_session_context_class">thread</property>
hibernate3.6-联合主键注解以及openSession和getCurrentSession区别的更多相关文章
- hibernate联合主键 注解方式
转载自https://my.oschina.net/yotoo/blog/265571 方法一:主键类用@Embeddable,pojo类仍然用@Entity但是引用主键类的对象用@Id 主键pojo ...
- hibernate联合主键注解配置
在网上看到好多方法,结果拿来用还是出现了一些问题.现在整理一下 1.主键类 import javax.persistence.Column; public class UserRoleUionPK i ...
- hibernate联合主键注解方式
方法一:主键类用@Embeddable,pojo类仍然用@Entity但是引用主键类的对象用@Id 主键pojo类: @Embeddable public class composeIdPK impl ...
- Java进阶知识05 Hibernate联合主键之Annotation(注解)和XML实现方式
1.Hibernate联合主键(Annotation实现) 1.1.单列主键 1.1.1.为什么要有主键? //唯一确定一条记录 1.1.2.一个表能否有多个主键? //不能 1.1.3. ...
- Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/A ...
- Hibernate注解映射联合主键的三种主要方式
今天在做项目的时候,一个中间表没有主键,所有在创建实体的时候也未加组件,结果报以下错误: org.springframework.beans.factory.BeanCreationException ...
- 联合主键用Hibernate注解映射的三种方式
第一.将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主 ...
- hibernate 注解 联合主键映射
联合主键用Hibernate注解映射方式主要有三种: 第一.将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将 该类注解 ...
- 联合主键用hibernate注解映射方式主要有三种:
将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode 第一.将该类注解为@Embeddable,最后在主类中(该类不包含联合主键 ...
随机推荐
- 连Python产生器(Generator)的原理都解释不了,还敢说Python用了5年?
最近有很多学Python同学问我,Python Generator到底是什么东西,如何理解和使用.Ok,现在就用这篇文章对Python Generator做一个敲骨沥髓的深入解析. 为了更好地 ...
- 线程基本使用--Thread内部方法调用start
一个问题,下面的代码会如何运行 public class TraditionalThread { public static void main(String[] args) { System.out ...
- [wxpusher]分享一个服务器推送消息到微信上的小工具,可以用于微信推送提醒和告警。
背景 作为一个程序员,业余搞点自己的东西很正常,一般程序员都会有一两台自己的服务器,谁叫今天xx云搞活动,明天yy云搞活动呢. 自家的服务器用来跑爬虫,跑博客,或者跑一些个人业务,但当服务有新状态,抢 ...
- php安装kafka扩展
https://blog.csdn.net/zsl10/article/details/78743335 https://blog.csdn.net/lw545034502/article/detai ...
- php中,posix_getpid() 和 getmypid() 有什么不同
getmypid:windows 和 linux都可以用posix_getpid:仅linux可以用
- C# 微信共享收货地址 V1.6
//使用微信共享收货地址在跳转到当前页面的路径上必须要包含Code和state这两个获取用户信息的参数//例如 <a href="ProductOrder.aspx?OID=<% ...
- Linux用户和组管理命令-用户创建useradd
用户管理命令 useradd usermod userdel 组帐号维护命令 groupadd groupmod groupdel 用户创建 useradd 命令可以创建新的Linux用户 格式: u ...
- error: Please reinstall the libzip distribution
安装中遇到的问题 在运行 ./configure 时,提示: Please reinstall the libzip distribution 是因为 libzip 版本过低,编译升级 先卸载了原先的 ...
- python的deque(双向)队列详解
首先 python的队列有很多种 Python标准库中包含了四种队列,分别是queue.Queue / asyncio.Queue / multiprocessing.Queue / collecti ...
- Chrome FeHelper 插件下载地址
方便大家下载 下载可用,本人亲自测试 下载地址: 地址链接