hibernate12--注解
在之前的基础上删除hbm.xml映射文件
之后修改实体类内容
/**
* 部门的实体类
* strategy对应的就是主键生成策略
* GenerationType:
* 01.auto:自动选择合适的策略,而且是默认值
* 02.identity:主键自增
* 03.sequence:通过序列产生主键
* 04.table:通过表来生成主键!框架依赖数据库中的表!模拟序列产生主键!
*/
@Entity
public class Dept {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer deptNo;
private String deptName;
@Transient //忽略映射属性 输出值 null
private String location;
//一个部门对应多个员工
@OneToMany(mappedBy="dept",cascade={CascadeType.ALL})
private Set<Emp> emps=new HashSet<>();
public Integer getDeptNo() {
return deptNo;
}
public void setDeptNo(Integer deptNo) {
this.deptNo = deptNo;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public Set<Emp> getEmps() {
return emps;
}
public void setEmps(Set<Emp> emps) {
this.emps = emps;
}
public Dept(Integer deptNo, String deptName, String location, Set<Emp> emps) {
super();
this.deptNo = deptNo;
this.deptName = deptName;
this.location = location;
this.emps = emps;
}
public Dept() {
super();
}
@Override
public String toString() {
return "Dept [deptNo=" + deptNo + ", deptName=" + deptName
+ ", location=" + location + ", emps=" + emps.size() + "]";
} }
/**
* @author 小豆腐
*员工的实体类
*/
@Entity
public class Emp {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq_emp")
@SequenceGenerator(name="seq_emp",sequenceName="sq_student_id")
private Integer empNo;
private String empName;
private String job;
@Column(name="salary")
private Double sal;
private Date hireDate;
//多个员工属于一个部门
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="deptNo")
private Dept dept; public Integer getEmpNo() {
return empNo;
} public void setEmpNo(Integer empNo) {
this.empNo = empNo;
} public String getEmpName() {
return empName;
} public void setEmpName(String empName) {
this.empName = empName;
} public String getJob() {
return job;
} public void setJob(String job) {
this.job = job;
} public Double getSal() {
return sal;
} public void setSal(Double salary) {
this.sal = salary;
} public Date getHireDate() {
return hireDate;
} public void setHireDate(Date hireDate) {
this.hireDate = hireDate;
} public Dept getDept() {
return dept;
} public void setDept(Dept dept) {
this.dept = dept;
} public Emp(Integer empNo, String empName, String job, Double salary,
Date hireDate, Dept dept) {
super();
this.empNo = empNo;
this.empName = empName;
this.job = job;
this.sal = salary;
this.hireDate = hireDate;
this.dept = dept;
} public Emp() {
super();
} @Override
public String toString() {
return "Emp [empNo=" + empNo + ", empName=" + empName + ", job=" + job
+ ", salary=" + sal + ", hireDate=" + hireDate + ", dept="
+ dept + "]";
}
}
在hibernate.cfg.xml中管理 实体类
<!--加载我们配置 注解类 -->
<mapping class="cn.bdqn.bean.Dept" />
<mapping class="cn.bdqn.bean.Emp" />
hibernate12--注解的更多相关文章
- 基于spring注解AOP的异常处理
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...
- [Spring]IoC容器之进击的注解
先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...
- Android注解使用之通过annotationProcessor注解生成代码实现自己的ButterKnife框架
前言: Annotation注解在Android的开发中的使用越来越普遍,例如EventBus.ButterKnife.Dagger2等,之前使用注解的时候需要利用反射机制势必影响到运行效率及性能,直 ...
- Android注解使用之注解编译android-apt如何切换到annotationProcessor
前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不 ...
- spring注解源码分析--how does autowired works?
1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行d ...
- 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)
建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...
- ASP.NET MVC5----常见的数据注解和验证
只要一直走,慢点又何妨. 在使用MVC模式进行开发时,数据注解是经常使用的(模型之上操作),下面是我看书整理的一些常见的用法. 什么是验证,数据注解 验证 从全局来看,发现逻辑仅是整个验证的很小的一部 ...
- 基于注解的bean配置
基于注解的bean配置,主要是进行applicationContext.xml配置.DAO层类注解.Service层类注解. 1.在applicationContext.xml文件中配置信息如下 &l ...
- Spring注解
AccountController .java Java代码 1. /** 2. * 2010-1-23 3. */ 4. packag ...
- Spring MVC注解开发入门
注解式开发初步 常用的两个注解: @Controller:是SpringMVC中最常用的注解,它可以帮助定义当前类为一个Spring管理的bean,同时指定该类是一个控制器,可以用来接受请求.标识当前 ...
随机推荐
- Codeforces Round#251(Div 2)D Devu and his Brother
--你以为你以为的.就是你以为的? --有时候还真是 题目链接:http://codeforces.com/contest/439/problem/D 题意大概就是要求第一个数组的最小值要不小于第二个 ...
- jquery关于select框的取值和赋值
jQuery("#select_id").change(function(){}); // 1.为Select添加事件,当选择其中一项时触发 var checkValue ...
- ImageMagick来处理图片,缩放,调整高度等操作
单个缩放图片 convert 911.jpg -resize 25% 911.jpg 前面是要处理的图片路径,后面是输出的图片路径,我这么写就把原先图片缩放了 批量缩放图片 mogrify -samp ...
- CNN学习笔记:目标函数
CNN学习笔记:目标函数 分类任务中的目标函数 目标函数,亦称损失函数或代价函数,是整个网络模型的指挥棒,通过样本的预测结果与真实标记产生的误差来反向传播指导网络参数学习和表示学习. 假设某分类任务共 ...
- python约束 与MD5加密写法
python 中约束写法有两种 1 常用的通过继承关系主动抛出异常 2 通过抽象类+抽象方法 1 常用的通过继承关系主动抛出异常写法 在本send方法中报错不会抛出异常, class BaseMes ...
- msys2安装开发工具
pacman -Syupacman -Supacman -S base-develpacman -S mingw-w64-x86_64-toolchain
- 菩提树下的杨过.Net 的《hadoop 2.6全分布安装》补充版
对菩提树下的杨过.Net的这篇博客<hadoop 2.6全分布安装>,我真是佩服的五体投地,我第一次见过教程能写的这么言简意赅,但是又能比较准确表述每一步做法的,这篇博客主要就是在他的基础 ...
- 微信小程序获取验证码倒计时
getVerificationCode: function() { var that = this; var currentTime = that.data.currentTime; that.set ...
- Linux 进程管理 进程优先级管理
Linux进程优先级 Linux 是一个多用户.多任务的操作系统,系统中通常运行着非常多的进程.但是 CPU 在一个时钟周期内只能运算一条指令(现在的 CPU 采用了多线程.多核心技术,所以在一个时钟 ...
- Javascript作用域详解。
javascript的作用域 是按照 函数来划分的. 网址:http://www.cnblogs.com/rubylouvre/archive/2009/08/21/1551270.html