`
titanseason
  • 浏览: 180796 次
社区版块
存档分类
最新评论

利用@annotation生成持久化层,可以直接由类生成表

阅读更多

利用@annotation生成持久化层,可以直接由类生成表

啥也不说了,直接上两个例子,里面有外键关联,有字符串类型,int类型,布尔类型。注意类名上面的 @Entity 注记一定要有

 

 

package com.mycom.entity;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 角色表
 *
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "Role")
public class Role implements Serializable{
	
	private Integer id;//角色id,自增
	
	private String name;//角色名称,长度20
	
	public Role() {
		super();
	}

	public Role(String name) {
		super();
		this.name = name;
	}

	@Id
	@GeneratedValue
	@Column(name = "id")
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "name", unique = true, length = 20)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
}

 

在用户表中,有一个外键关联到角色表,这个比较关键,其他都很简单

 

package com.mycom.entity;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * 用户表
 * 
 * @author Kingt.W
 * 
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "User")
public class User implements Serializable {
	/**
	 * 用户id,自动生成
	 */
	private Integer id;
	/**
	 * 用户名,长度20.如果该用户为教师,则直接用教师的工号作为用户名
	 */
	private String username;
	/**
	 * 密码,长度32
	 */
	private String password;
	/**
	 * 该用户的角色
	 */
	private Role role;
	/**
	 * 该用户账号是否可用
	 */
	private boolean isActive;


	public User() {
		super();
	}

	/**
	 * 获取用户的id
	 * 
	 * @return - 用户的id
	 */
	@Id
	@GeneratedValue
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return id;
	}

	/**
	 * 设置用户的id
	 * 
	 * @param id
	 *            - 用户id
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**
	 * 获取用户名
	 * 
	 * @return - 用户名
	 */
	@Column(name = "username", unique = true, length = 20)
	public String getUsername() {
		return username;
	}

	/**
	 * 设置用户名,如果该用户为教师,则直接用教师的工号作为用户名
	 * 
	 * @param username
	 *            - 用户名
	 */
	public void setUsername(String username) {
		this.username = username;
	}

	/**
	 * 获取用户的密码
	 * 
	 * @return - 用户的密码
	 */
	@Column(name = "password", length = 32, nullable = false)
	public String getPassword() {
		return password;
	}

	/**
	 * 设置用户的密码
	 * 
	 * @param password
	 *            - 密码
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * 获取该用户的角色
	 * 
	 * @return - 该用户的角色
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idRole")
	public Role getRole() {
		return role;
	}

	/**
	 * 设置该用户的角色
	 * 
	 * @param role
	 *            - 角色
	 */
	public void setRole(Role role) {
		this.role = role;
	}
	
	/**
	 * 获取该用户账号状态:是否可用
	 * @return - true则可用;false则不可用
	 */
	@Column(name = "isActive")
	public boolean isActive() {
		return isActive;
	}

	/**
	 * 设置该用户账号状态:是否可用
	 * @param isActive - 账号状态:true则可用;false则不可用
	 */
	public void setActive(boolean isActive) {
		this.isActive = isActive;
	}

}

 

 

至于如何由类生成表,可以在Hibernate的配置文件里面加上这条语句,详细的Hibernate配置可以查看笔者的令一篇文章http://titanseason.iteye.com/admin/blogs/1279187

 

<!-- 启动服务器时,自动更新数据库.开发结束以后,删掉下面这行-->
		<property name="hibernate.hbm2ddl.auto">update</property>
1
1
分享到:
评论

相关推荐

    openjpa实体标识的生成策略

    JPA 充分利用了注释(Annotation)和对象/关系映射,为数据持久化提供了更简单、易用的编程方式。OpenJPA 是 Apache 组织提供的 JPA 标准实现。本文是 使用 Apache OpenJPA 开发 EJB 3.0 应用系列 的第五部分,介绍...

    hibernate annotation 中文文档

    用cascading实现传播性持久化(Transitive persistence) 2.2.5.5. 关联关系获取 2.2.6. 映射复合主键与外键 2.2.7. 映射二级表(secondary tables) 2.3. 映射查询 2.3.1. 映射EJBQL/HQL查询 2.3.2. 映射本地化查询 ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    hibernate annotation帮助文档

    用cascading实现传播性持久化(Transitive persistence) 2.2.5.5. 关联关系获取 2.2.6. 映射复合主键与外键 2.2.7. 映射二级表(secondary tables) 2.3. 映射查询 2.3.1. 映射EJBQL/HQL查询 2.3.2. 映射本地化...

    MyEclipse JPA 教程

    MyEclipse的JPA工具提供了功能强大的生成和自动化工具,可以直接从现有的数据库表中生成对应的可工作POJO Java类。MyEclipse还为JPA在Java源代码编辑器中提供了一些辅助的功能,提供对用来实体(Entity)进行注解的...

    mybatis 样例,包含xml和annotation方式、关联映射、动态SQL等内容.zip

    Mabits是一个Java持久化框架,它提供了动态SQL的功能。动态SQL是一种根据不同条件动态生成SQL语句的技术。在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或...

    Hibernate注释大全收藏

    实体Bean中所有非static 非 transient 属性都可以被持久化,除非用@Transient注解。 默认情况下,所有属性都用 @Basic 注解。 public transient int counter; //transient property private String firstname; //...

    fastquery:FastQuery(快速数据库查询的方法)基于Java语言。他的使命是:简化Java操作数据层。做为一个开发者,只需只需要设计DAO接口即可,在项目初始化阶段采用ASM生成好实现类

    在项目初始化阶段采用ASM生成好字节码,因此支持编译前预备,可替换减少运行期的错误,显着提升程序的强壮性 支持安全查询,防止SQL注入 支持与主流数据库连接池框架集成 支持@Query查询,使用@Cond

    Hibernate笔记 马士兵

    十一、 不需要(持久化)psersistence的字段 18 十二、 映射日期与时间类型,指定时间精度 18 十三、 映射枚举类型 19 第12课 使用hibernate工具类将对象模型生成关系模型 19 第13课 ID主键生成策略 20 一、 Xml方式 ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    该案例采用目前最流行、最规范的java ee架构,整个应用分为jpa实体层、eao层、业务逻辑层、mvc层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了ide无关的、基于ant管理的项目源码...

    Hibernate教程

    1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2. 映射文件 2.2.3. Hibernate配置 2.2.4. 用Ant...

    FastQuery 基于Java语言.他的使命是:简化Java操作数据层

    提供少许Annotation,消费者只用关心注解的含义,这就使得框架的核心便于重构,便于持续良性发展.,仅仅只需要设计编写DAO接口即可,在项目初始化阶段采用ASM生成好实现类. 因此,开发代码不得不简洁而优雅.从而,大幅度...

    hibernate3.04中文文档.chm

    符合Java习惯的关系数据库持久化 目录 前言 1. 翻译说明 2. 版权声明 1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 ...

    hibernate 框架详解

    5. 持久化类(Persistent Classes) 5.1. 一个简单的POJO例子 5.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 5.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 5.1.3. 提供...

    最全Hibernate 参考文档

    1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. 架构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory ...

    Hibernate中文详细学习文档

    符合Java习惯的关系数据库持久化 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. ...

    Hibernate3的帮助文档

    1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2. 映射文件 2.2.3. Hibernate配置 2.2.4. 用Ant...

    Hibernate参考文档

    4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选)...

    Hibernate3+中文参考文档

    1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. 架构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory ...

    hibernate 体系结构与配置 参考文档(html)

    4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 ...

Global site tag (gtag.js) - Google Analytics