采用Annotation来管理实体类

当采用Annotation来管理实体类之后得到的如下的公式:

PO=POJO+@Annotation

定义一个实体类可以这样的用:

@Entity

@Table(name="person_table")

public class Person

{

/* 指定使用复合主键类是Name */

@EmbeddedId

@AttributeOverrides({

@AttributeOverride(name="first"

, column=@Column(name="person_first")),

@AttributeOverride(name="last"

, column=@Column(name="person_last" , length=20))

})

private Name name;

//普通属性

@Column(name="person_email")

private String email;

@Embedded

@AttributeOverrides({

@AttributeOverride(name="name"

, column=@Column(name="cat_name" , length=35)),

@AttributeOverride(name="color"

, column=@Column(name="cat_color"))

})

//组件属性,代表此人拥有的宠物

private Cat pet;

//name属性的setter和getter方法

public void setName(Name name)

{

this.name = name;

}

public Name getName()

{

return this.name;

}

//email属性的setter和getter方法

public void setEmail(String email)

{

this.email = email;

}

public String getEmail()

{

return this.email;

}

//pet属性的setter和getter方法

public void setPet(Cat pet)

{

this.pet = pet;

}

public Cat getPet()

{

return this.pet;

}

}

//修饰组件属性类

@Embeddable

public class Name

implements java.io.Serializable

{

private String first;

private String last;

//无参数的构造器

public Name()

{

}

//初始化全部属性的构造器

public Name(String first , String last)

{

this.first = first;

this.last = last;

}

//first属性的setter和getter方法

public void setFirst(String first)

{

this.first = first;

}

public String getFirst()

{

return this.first;

}

//last属性的setter和getter方法

public void setLast(String last)

{

this.last = last;

}

public String getLast()

{

return this.last;

}

//提供重写的equals方法

public boolean equals(Object obj)

{

if (this == obj)

{

return true;

}

if (obj.getClass() == Name.class)

{

Name target = (Name)obj;

if (target.getFirst().equals(first)

&& target.getLast().equals(last))

{

return true;

}

}

return false;

}

//提供重写的hashCode方法

public int hashCode()

{

return first.hashCode() + last.hashCode() * 17;

}

}

//修饰组件属性类

@Embeddable

Hibernate的映射文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值