Java_注解之一
注解可以替换复杂的hbm.xml文件,使得程序的开发大大简化
@Override :子类重写父类方法
@Test :junit测试
@Before :测试之前执行
@SuppressWarnings :防止代码报黄
@Entity :标识实体类(被持久化)
@Table :DB层表的名称
@Transient :不持久化某个属性
@Column:数据表中的字段名
@GenerateValue :主键生成策略
Hibernate提供了Hibernate Annotations扩展包,使用注解完成映射。
在Hibernate3.3之前,需单独下载注解开发包。
配置持久化类方式:

@GeneratedValue指定了标识符的生成策略。JPA提供了4种标准用法。
(1)AUTO:根据不同的数据库选择不同的策略。
(2)TABLE:使用表保存id值。
(3)INDENITY:使用数据库自动生成主键(主要是自动增长类型,如MySql、SQL Server)。
(4)SEQUENCE:使用序列创建主键(如Oracle)。
配置持久化类的关联关系的方式:


1.实体类中注解的配置:
此案例中除 @GenericGenerator 的引用是org.hibernate.*外, 其他几个注解的引用皆为javax.persistence.*
001.Dept
package cn.happy.entity_annotations; import java.util.HashSet;
import java.util.Set; import javax.annotation.Generated;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table; import org.hibernate.annotations.GenericGenerator; /**
* 注解1.1
*/
@Entity
@Table(name="DEPT")
public class Dept { /*@Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq_gen")
@SequenceGenerator(name="seq_gen",sequenceName="HIBERNATE_SEQUENCE",allocationSize=1,initialValue=4)*/ @Id
//主键生成策略
@GeneratedValue(generator="my_gen")
//自定义主键生成方式:uuid
@GenericGenerator(name="my_gen",strategy="uuid")
private Integer deptNo; @Column(name="DNAME")
private String deptName; @Column(name="LOC")
private String loc; @OneToMany(mappedBy="dept",cascade={CascadeType.ALL})
private Set<Emp> emps = new HashSet<Emp>();
}
@Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq_gen")
@SequenceGenerator(name="seq_gen",sequenceName="SEQ_Num",allocationSize=1,initialValue=4)
(1)使用@GeneratedValue设置主键生成策略。strategy=GenerationType.SEQUENCE描述了主键生成策略为Sequence,
generator="seq_emp"指定了生成器为 seq_emp。
(2)使用@SequenceGenerator设置了序列生成器,name="seq_name" 定义了序列生成器的名称为seq_emp;
seqenceName="seq_emp_id" 指定了序列Sequence的名称为seq_emp_id,数据库中需创建序列Sequence,名称为seq_emp_id;
initialValue=1 设置了主键初始值,默认为0; allocationSize=1 表示预分配多少个主键值,如设置为1,表示不预分配主键值,默认为50.
002.Emp
package cn.happy.entity_annotations; import java.util.Date; import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table; /**
* 注解1.2
*/
@Entity
@Table (name="EMP")
@NamedQuery(name="selectEmp",query="from Emp e where e.empId>:eno")
public class Emp {
@Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq_gen")
@SequenceGenerator(name="seq_gen",sequenceName="SEQ_Num",allocationSize=1,initialValue=4)
@Column (name="EMPNO")
private Integer empId;
@Column (name="ENAME")
private String empName;
@Column
private String job;
@Column
private String mgr;
@Column
private Date hiredate;
@Column
private Integer sal;
@Column
private Integer comm;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="DEPTNO")
private Dept dept; }
Java_注解之一的更多相关文章
- Java_注解_01_注解(Annotation)详解
一.注解的概念 Annotation(注解)是插入代码中的元数据(元数据从metadata一词译来,就是“描述数据的数据”的意思),在JDK5.0及以后版本引入.它可以在编译期使用预编译工具进行处理, ...
- java_注解
注解1 注解的概念 jdk自带的注解 声明与使用注解的基本语法 注解的概念 在javaEE与开源框架中广泛使用,泛型在集合框架中广泛使用 注 ...
- Java_注解_异常_01_ElementType cannot be resolved to a variable
一.异常现象: 自定义注解时, @Retention和@Target都能导入进来,但是却报下列错误: RetentionPolicy cannot be resolved to a variable ...
- Java_注解_00_资源贴
1.Java注解教程:自定义注解示例,利用反射进行解析 2. (1)深入理解Java:注解(Annotation)基本概念 (2)深入理解Java:注解(Annotation)自定义注解入门 (3)深 ...
- Java_注解之二
在上一次的注解案例里面配置注解的同时,也添加了一对多(@OneToMany)的关系在里面. 本次将补充上次的缺失:其他三种关联方式的配置. 为了简化配置的复杂度 在此案例中Emp和Dept并不是唯 ...
- java_基础_注解
注解(annotation),不是注释(comment) 注解可以对程序做说明,这一点和注释一样但是,注解还可以被其他程序读取,这是注释所不具备的 内置注解:@Override(表示重写父类方法)—— ...
- Java_框架面试题
Java_框架面试题 欢迎来我Git上分享您的优秀建议 1.Spring框架分为哪七大模块,各模块的主要功能作用是什么? 七大模块,如下: 1. Spring Core: Core封装包是框架的最基础 ...
- 基于spring注解AOP的异常处理
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...
- [Spring]IoC容器之进击的注解
先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...
随机推荐
- [luoguP1373] 小a和uim之大逃离(DP)
传送门 题解 代码 #include <cstdio> #include <iostream> #define N 802 #define mod 1000000007 int ...
- noip模拟赛 蒜头君打地鼠
分析:直接一个一个地去暴力枚举分数比较少,我们需要一种比较快的统计一定空间内1的数量,标准做法是前缀和,但是二维前缀和维护的是一个矩形内的值,这个是旋转过的该怎么办?可以把图旋转45°,不过这样比较考 ...
- BMP的图像处理
近期碰到了一个问题将图片缩放: 进行了整理发现位图一些主要的结构能够进行整理,得出下面图表: 进行图片缩放的时候会进行一些处理(最临近差值法): 详细的代码例如以下: #include <std ...
- Neutron中的网络I/O虚拟化
为了提升网络I/O性能.虚拟化的网络I/O模型也在不断的演化: 1,全虚拟化网卡(emulation).如VMware中的E1000用来仿真intel 82545千兆网卡,它的功能更完备,如相比一些半 ...
- Windows 注册表常用操作
1 添加一个主键(比如在HKEY_LOCAL_MACHINE\SOFTWARE\中添加一个ABCEDFGHIJKLMN主键) Windows Registry Editor Version 5.00 ...
- 从Linux 2.6.8内核的一个TSO/NAT bug引出的网络问题排查观点(附一个skb的优化点)
梦中没有错与对,梦中没有恨和悔...最好闭上你的嘴.这样才算可爱...我不会说:这不公道,我不能接受.我会用朴素的文字记录点点滴滴,早上4点多起来,一气呵成最近的收获与评价,愤慨与忏悔. 四年多前的一 ...
- Java---15---单例设计模式:---饿汉式和懒汉式
概念: 单例模式确保某个类仅仅有一个实例.并且自行实例化并向整个系统提供这个实例. 单例模式有下面特点: 1.单例类仅仅能有一个实例 2.单例类必须自己给自己创建自己的唯一实例 3.单例类必须给全 ...
- JavaScript设计模式 Item9 --适配器模式Adapter
适配器模式(转换器面模式),通常是为要使用的接口,不符本应用或本系统使用,而需引入的中间适配层类或对象的情况. 适配器模式的作用是解决两个软件实体间的接口不兼容的问题. 一.定义 适配器模式(Adap ...
- 读写Word的组件DocX介绍与入门
本文为转载内容: 文章原地址:http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html 开源Word读写组件DocX介绍与入门 阅读 ...
- oc 和swift混编的时候打包ipa安装不了
做了一个oc项目.里面实用到swift第三方,真机执行的时候是正常的,用企业级证书打包成ipa之后安装完毕之后闪退.通过导出手机log日志发现错误提示: Dyld Error Message: L ...