日期:2014-05-16 浏览次数:20499 次
利用@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; } }
?