日期:2014-05-16  浏览次数:20499 次

利用@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;
	}

}

?