hibernate中的Annotation补充
来源:互联网 发布:商品上淘宝首页 编辑:程序博客网 时间:2024/05/22 16:55
下面使用Annotation来定义一个实体类:
@Entity
@Table(name="person_table") //不是引入org.hibernate.persistence,因为这个只可以在hibernate环境下使用
public
{
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name="first"
,
@AttributeOverride(name="last"
,
})
private
//普通属性
@Column(name="person_email")
private
@Embedded
@AttributeOverrides({
@AttributeOverride(name="name"
,
@AttributeOverride(name="color"
,
})
//组件属性,代表此人拥有的宠物
private
//省略name属性的setter和getter方法
...
//省略email属性的setter和getter方法
...
//省略pet属性的setter和getter方法
...
}
上面程序的粗体字代码就可管理实体类与数据表之间的映射关系,其中@Entity用于标注该类是一个持久化类,@
上面程序还用了Name类,它是一个Person实体的标识属性的类型,程序使用@Embeddable标注它即可。如下代码所示:
//修饰组件属性类
@Embeddable
public
implements
{
private
private
//无参数的构造器
public
{
}
//初始化全部属性的构造器
public
{
this.first
this.last
}
//省略first属性的setter和getter方法
...
//省略last属性的setter和getter方法
...
//提供重写的equals方法
public
{
if
{
return
}
if
{
Name
if
&&
{
return
}
}
return
}
//提供重写的hashCode方法
public
{
return
}
}
上面Name类需要作为标识属性的类型,因此一样需要实现java.io.Serializable接口,并重写了hashCode()和equals()两个方法。
至于Person类所包含的组件属性pet,它所属的Cat类也只要简单地使用@Embeddable修饰即可,下面是该Cat类的代码:
//修饰组件属性类
@Embeddable
public
{
private
private
//无参数的构造器
public
{
}
//初始化全部属性的构造器
public
{
this.name
this.color
}
//省略name属性的setter和getter方法
...
//省略color属性的setter和getter方法
...
}
一旦在实体类中通过上面Annotation进行标注之后,Hibernate已经能够理解实体类与数据表之间的映射关系了,也就不再需要*.hbm.xml的映射文件了。此时要将hibernate.cfg.xml文件略做修改——告诉它去加载指定实体类,而不是根据映射文件加载。本应用所使用的hibernate.cfg.xml文件代码如下:
<?xml
<!--
<!DOCTYPE
"-//Hibernate/Hibernate
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
<hibernate-configuration>
<session-factory>
<!--
...
<!--
<mapping
</session-factory>
</hibernate-configuration>
经过上面修改之后,主程序不需要任何改变。不管使用XML映射文件管理实体的映射、还是采用Annotation管理实体的映射,Hibernate的处理完全相同。
- hibernate中的Annotation补充
- hibernate中的Annotation补充 联合主键
- annotation在Hibernate中的用法
- hibernate 中的Annotation的使用
- Hibernate中的Annotation和更新数据库
- Hibernate annotation
- Hibernate Annotation
- Hibernate Annotation
- Hibernate Annotation
- hibernate annotation
- Hibernate Annotation
- hibernate annotation
- Hibernate Annotation
- Hibernate Annotation
- Hibernate Annotation
- hibernate annotation
- hibernate annotation
- hibernate annotation
- C学习笔记--在字符串中删除指定的字符
- android加载网络图片
- 浅谈HTTP中Get与Post的区别
- 杭电hdu 1564 Play a game 博弈?
- 第八周任务1方案2
- hibernate中的Annotation补充
- N种方法使用C++调用C#.NET库
- struts error和message标签学习
- JUnit: Hamcrest使用
- javascript阻止事件冒泡
- JavaScript事件编程入门案例和对对象属性的遍历
- IP地址 DWORD与字符串转换
- Logminer的使用
- SQL面试题