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,同时指定该类是一个控制器,可以用来接受请求.标识当前 ...
随机推荐
- fopen() r+、w+属性详解
r+具有读写属性,从文件头开始写,保留原文件中没有被覆盖的内容: w+具有读写属性,写的时候如果文件存在,会被清空,从头开始写. r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须 ...
- Android 成功 使用GPS获取当前地理位置(解决getLastKnownLocation 返回 null)
最近遇到一个比较棘手的问题:使用GPS定位无法获取当前的地理位置,即getLastKnownLocation方法始终返回null. 后来一篇博文 getLastKnownLocation()返回n ...
- java 中JFinal getModel方法和数据库使用出现问题解决办法
JFinal getModel方法(从页面表单中获取Model对象)+数据库存储问题 一.getmodel方法 1.在JConfig配置类中的数据库映射(存储到数据库时需要此配置) public vo ...
- 在 ReportViewer 报表中使用表达式
from:http://www.cnblogs.com/jobin/articles/1152213.html 有些表达式在报表中很常用.其中包括更改报表中的数据外观的表达式.计算总数的表达式和更改报 ...
- akka框架地址
http://doc.akka.io/docs/akka/2.2.3/AkkaJava.pdf
- $ git学习总结系列(3)——分支管理
本文主要介绍git分支的概念及常用分支操作. 分支的概念 所谓分支,可以理解成一个个相互独立的工作空间,在每一个分支上的改动不会影响到其他分支的代码.git默认的分支是master分支. 试想一下这样 ...
- hadoop21---使用代理修改List,代理流程
package cn.itcast_05_proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Met ...
- 阻塞方法与InterruptedException
什么是阻塞方法?为什么会抛出InterruptedException? 一般方法的完成只取决于它所要做的事情,以及是否有足够多可用的计算资源(CPU 周期和内存). 而阻塞方法的完成还取决于一些外部的 ...
- 什么是MSB/LSB码?
MSB是Most Significant Bit的缩写,最高有效位.在二进制数中,MSB是最高加权位.与十进制数字中最左边的一位类似.通常,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧. L ...
- NOIP 统计单词个数
描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的单词个 ...