hibernate之实体@onetomany和@manytoone双向注解(转)
下面是User类:
@onetomany
@Entity
@Table(name="user")
public class User implements Serializable{ private static final long serialVersionUID = 6177417450707400228L; @Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
private int id; @Column(name="name")
private String name; @Column(name="password")
private String password; /*
* cascade:为级联操作,里面有级联保存,级联删除等,all为所有
* fetch:加载类型,有lazy和eager二种,
* eager为急加载,意为立即加载,在类加载时就加载,lazy为慢加载,第一次调用的时候再加载,由于数据量太大,onetomany一般为lazy
* mappedBy:这个为manytoone中的对象名,这个不要变哦
* Set:这个类型有两种,一种为list另一种为set
*
*
*/
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="user")
private Set setRole; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public Set getSetRole() {
return setRole;
} public void setSetRole(Set setRole) {
this.setRole = setRole;
} }
@manytoone
@Entity
@Table(name="role")
public class Role { private static final long serialVersionUID = 6177417450707400228L; @Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="role_id")
private int role_id; @Column(name="role_name")
private String role_name; @ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@JoinColumn(name="user_id")//加入一列作为外键
private User user; public int getRole_id() {
return role_id;
}
public void setRole_id(int role_id) {
this.role_id = role_id;
} public String getRole_name() {
return role_name;
}
public void setRole_name(String role_name) {
this.role_name = role_name;
} public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
} }
有了这二个注解,我们不需要建表,hibernate会为我们自动建立表以及各种表级联系
其中@table为映射表名,@column为映射列名,其他的我不一一细说了。
下面就是操作了,定义了级联操作,下面是保存的。
public Role save() {
User user=new User();
user.setName("123456");
user.setPassword("123456");
Role role=new Role();
role.setRole_name("student");
role.setUser(user);
Role roler=registerDao.save(role);
return roler;
}
hibernate之实体@onetomany和@manytoone双向注解(转)的更多相关文章
- hibernate one-to-many many-to-one 双向注解
建表语句: DROP TABLE IF EXISTS `t_company`; CREATE TABLE `t_company` ( `companyId` ) unsigned NOT NULL A ...
- Hibernate学习笔记:注解@OneToMany和@ManyToOne的单独使用问题 不成对使用
以某个实际场景为例,现在两张表:用户表User 订单表Order:很显然用户对订单是一对多的关系.二者注解如下 用户表User @Entity @Table(name="users" ...
- Hibernate 注解 (Annotations 三)多对一双向注解
注解(Annotation),也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次.它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来 ...
- Hibernate的单向OneToMany、单向ManyToOne
单向OneToMany 一个用户有多张照片,User----->Images是一对多关系,在数据库中Images维护一个外键useid 1.在映射关系的主控方Image这边,我们什么都不做.(为 ...
- Hibernate 注解(Annotations 四)多对多双向注解
注解(Annotation),也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次.它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来 ...
- spring-data-jpa——如果使用了one-to-many,many-to-one的注解,在Jackson进行json字符串化时出现错误的解决方案
参考资料: http://blog.csdn.net/remote_roamer/article/details/51330843 http://blog.csdn.net/xiaodaiye/art ...
- Hibernate一对多OnetoMany
------------------------Hibernate一对多OnetoMany 要点: 配置在一端. 1.如果是单向关联,即只在一端配置OneToMany,多端不配置ManyToOne.则 ...
- Java进阶知识10 Hibernate一对多_多对一双向关联(Annotation+XML实现)
本文知识点(目录): 1.Annotation 注解版(只是测试建表) 2.XML版 的实现(只是测试建表) 3.附录(Annotation 注解版CRUD操作)[注解版有个问题:插入值时 ...
- JPA之@OneToMany、@ManyToOne、@JoinColumn
顾名思义,@OneToMany.@ManyToOne这两个注解就是处理一对多,多对一的关系 这两个注解是成双成对的,有了@OneToMany,一定会配置一个@ManyToOne OneToMany设置 ...
随机推荐
- web-based installer and executable installer in python 3 ,what is the difference between them?
Welcome to Python! This applies to all programs, not just python: An executable installer has every ...
- FormsAuthentication.HashPasswordForStoringInConfigFile 的替代方法
由于项目中要和php对接,要将一段字符串生成md5(16位)验证码,在英文字符时,没有太大问题,但在遇到中文时,两边字条始终不一致. php是别人的项目,看不到源码,网上一查,估计是这样写的: < ...
- Spring怎么引入多个xml配置文件
方式一:在web.xml中通过<context-param> 标签引入 <context-param> <param-name>contextConfigLocat ...
- _0_web_基础
创:18_3_2017修:20_3_2017 什么是前端? --在浏览器中展示内容以及处理请求 什么是浏览器? --一款能将网页内容展现给用户查看,并且让用户与网页交互的软件 什么是内核? --渲染引 ...
- 【深度学习系列】迁移学习Transfer Learning
在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...
- 使用jQuery的ajax调用action的例子
直接使用ajax请求会比较繁琐,但是jQuery为我们提供了简单使用ajax的方法. 下面是一个在jQuery easyUI中,利用ajax请求,使下拉菜单关联文本框的例子.其中ajax请求就是8-1 ...
- Mac 管理员变为了普通用户怎么办?
开机的时候一直按住 command+s 出现命令行终端的时候按照以下顺序输入命令: /sbin/mount -uw 回车rm var/db/.AppleSetupDone 回车 reboot ...
- webpack从0开始---(二)
直接使用webpack进行打包 安装css loader,style loader(用来处理打包css文件) 命令行输入npm install css-loader style-loader --sa ...
- android view控件的显示和隐藏动画效果
// 显示动画 mShowAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO ...
- Spring 4.x (二)
1 静态代理 PersonDAO.java package com.xuweiwei.staticproxy; public interface PersonDAO { public void sav ...