Person 类:
import java.io.Serializable;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Person implements Serializable{
private static final long serialVersionUID = 8305710085432450318L;
private Integer personid;
private String name;
private boolean sex;
private Short age;
private Date birthday;
private IDCard idcard;
@Id
@GeneratedValue
public Integer getPersonid() {
return personid;
}
public void setPersonid(Integer personid) {
this.personid = personid;
}
@Column(name = "PersonName",nullable=false,length=32)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(nullable=false)
public boolean getSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
@Column(nullable=false)
public Short getAge() {
return age;
}
public void setAge(Short age) {
this.age = age;
}
@Temporal(value=TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@OneToOne(optional = true, cascade = CascadeType.ALL)
@JoinColumn(name = "idcard_id", unique = true)
// person是主体 person中保存idcard的外键
public IDCard getIdcard() {
return idcard;
}
public void setIdcard(IDCard idcard) {
this.idcard = idcard;
}
/**
* 返回对象的散列代码值。该实现根据此对象
* 中 personid 字段计算散列代码值。
* @return 此对象的散列代码值。
*/
@Override
public int hashCode() {
int hash = 0;
hash += (this.personid != null ? this.personid.hashCode() : 0);
return hash;
}
/**
* 确定其他对象是否等于此 Person。当且仅当
* 参数不为 null 且该参数是具有与此对象相同 personid 字段值的 Person 对象时,
* 结果才为 <code>true</code>。
* @param 对象,要比较的引用对象
* 如果此对象与参数相同,则 @return <code>true</code>;
* 否则为 <code>false</code>。
*/
@Override
public boolean equals(Object object) {
if (!(object instanceof Person)) {
return false;
}
Person other = (Person)object;
if (this.personid != other.personid && (this.personid == null || !this.personid.equals(other.personid))) return false;
return true;
}
/**
* 返回对象的字符串表示法。该实现根据 personid 字段
* 构造此表示法。
* @return 对象的字符串表示法。
*/
@Override
public String toString() {
return this.getClass().getName()+ "[personid=" + personid+ "]";
}
}
IDCard 类:
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class IDCard implements Serializable{
private static final long serialVersionUID = -4610000117411667607L;
private Integer id;
private String cardno;
private Person person;
public IDCard() {}
public IDCard(String cardno) {
this.cardno = cardno;
}
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(nullable=false,length=18,unique = true)
public String getCardno() {
return cardno;
}
public void setCardno(String cardno) {
this.cardno = cardno;
}
@OneToOne(optional = false, cascade = CascadeType.REFRESH, mappedBy = "idcard")
// 对应person表中的idcard属性
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
/**
* 返回对象的散列代码值。该实现根据此对象
* 中 id 字段计算散列代码值。
* @return 此对象的散列代码值。
*/
@Override
public int hashCode() {
int hash = 0;
hash += (this.id != null ? this.id.hashCode() : 0);
return hash;
}
/**
* 确定其他对象是否等于此 IDCard。当且仅当
* 参数不为 null 且该参数是具有与此对象相同 id 字段值的 IDCard 对象时,
* 结果才为 <code>true</code>。
* @param 对象,要比较的引用对象
* 如果此对象与参数相同,则 @return <code>true</code>;
* 否则为 <code>false</code>。
*/
@Override
public boolean equals(Object object) {
if (!(object instanceof IDCard)) {
return false;
}
IDCard other = (IDCard)object;
if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;
return true;
}
/**
* 返回对象的字符串表示法。该实现根据 id 字段
* 构造此表示法。
* @return 对象的字符串表示法。
*/
@Override
public String toString() {
return this.getClass().getName()+ "[id=" + id + "]";
}
}
分享到:
相关推荐
EJB3一对多和多对一关系映射实例
EJB3一对一关系映射实例
初学Ejb者使用,开发了一个购物车的简单点的案例
ejb实体bean eclipse mysql
EJB3开发Entity EJB3开发Entity
JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射
EJB3.0的一个单表映射实体bean,实现对数据的增、删、改、查
ejb3中文版
EJB3的三本好书第二本,最好的介绍ejb3的书,看过之后,其他的书都送人了,而且附带的源代码,几乎包括了所有的主流应用服务器的例子,glassfish, jboss, weblogic, oracleAS 3本书分别是: 1. Beginning EJB3 ...
EJB3.0实体的注解规范,覆盖了EJB3.0(也就是JPA)实体的注解规范以及Hibernate特有的扩展
EJB3的三本好书之三,也很不错的一本ejb3的书籍,是英文版,附带源代码,这本书的好处是与Mastering EJB 3ed有一定的继承性,可以对比来看. 3本书的地址 1. Beginning EJB3 Application Development From Novice to ...
EJB3多对多关系映射实例
EJB3开发指南英文版《EJB.3.Developer.Guide》 出版商:PacketPublishing 出版日期:2008年5月 页数:276 简介: 第一章:EJB3体系结构简介 第二章:Session Beans 第三章:实体Entities 第四章:对象关系映射ORM 第...
自己总结的EJB3上课教案,包括SessionBean、EntityBean、MDB、O/R映射与继承映射、持久化实体管理器、EJB3-QL、JTA等的教案.
EJB对象关系数据库映射.pdf EJB对象关系数据库映射.pdf
EJB3(中文版)EJB3(中文版)EJB3(中文版)EJB3(中文版)EJB3(中文版)EJB3(中文版)EJB3(中文版)
现在EJB3实体Bean是纯粹的POJO.实际上这表达了和Hibernate持久化实体对象同样的概念. 它们的映射都通过JDK5.0注解来定义(EJB3规范已经定义了对应的XML描述语法). 注解分为两个部分,分别是逻辑映射注解和物理映射注解...
Mastering+EJB3 EJB3+IN+ACTION Beginning+EJB3+Application+Development
实战EJB之四 开发实体CMP(EJB 1.1规范) .doc
ejb3实体bean实例,关于登陆注册信息