Hibernate映射之实体映射<转载>
来源:互联网 发布:淘宝导航黑色的代码 编辑:程序博客网 时间:2024/05/18 00:06
10.1 实体类的映射
从Java的角度讲,实体类就是普通的Java封装类(有人称为POJO有人称为VO)。仅从实体类中的代码信息,Hibernate并不能得知该实体类对应哪个数据表,因此还需要以某种方式配置一下。常用的方式有*.hbm.xml文件配置与@注解配置两种。
hbm.xml文件就是普通的xml文件,hbm为Hibernate
10.1.1 使用@注解配置实体类
实体类一般有ID、普通属性、集合属性等,分别对应数据库的主键、普通列、外键。@注解配置中,实体类用@Entity注解,用@Table指定对应的数据表,用@Id配置主键,用@Column配置普通属性,用@OneToMany、@ManyToOne、@OneToOne、@ManyToMany配置实体间关系等。实体类之间的关于在后面的章节中会做详细介绍。下面编写一个UsersVo类,在该类中使用@注解配置实体类的映射,UsersVo类的代码如下:
package com.cn.vo;
import javax.persistence.*;
@Entity// 注解Entity表示该类纳入Hibernate管理,能够被持久化
@Table(name = "users")// 指定该实体类对应的数据库表名
public class UsersVo {
//Fields
@Id// 指定该列为主键。
// 这个注解用来表示主键类型,
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "name")//指定变量对应的数据库表的列为"name"
private String name;
@Column(name = "age")//指定变量对应的数据库表的列为"age"
private int age;
@Column(name = "tel")//指定变量对应的数据库表的列为"tel"
private String tel;
@Column(name = "address")//指定变量对应的数据库表的列为"address"
private String address;
// Constructors
public UsersVo() {
}
public UsersVo(int id) {
this.id = id;
}
public UsersVo(int id, String name, int age, String tel,
String address) {
this.id = id;
this.name = name;
this.age = age;
this.tel = tel;
this.address = address;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
}
上述代码中,所有的@注解都是javax.persistence.*下的,而不是org.hibernate.*下的。javax.persistence.*下的注解为JPA规范规定的注解,用于标注实体类与数据库的映射关系,而org.hibernate.*下的注解仅用于补充,当某个功能JPA暂时不支持而Hibernate支持时使用。
10.1.2 使用XML文件配置实体类映射
多个实体类可以配置在一个XML文件中。Hibernate推荐XML映射文件和实体类同名,便于阅读和维护,比如UsersVo.java文件对应UsersVo.
< xmlversion encoding="utf-8" >
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"<
- Hibernate映射之实体映射<转载>
- Hibernate映射之实体映射<转载>
- Hibernate之实体关系映射
- Hibernate之实体关系映射
- hibernate实体映射之讲解
- hibernate之实体类型到映射文件
- Hibernate集合映射之Map-----element映射实体类型值
- Hibernate集合映射之Map-----element映射实体类型值
- Hibernate映射之实体映射<转…
- hibernate实体映射
- Hibernate实体映射浅谈
- Hibernate实体映射浅谈
- Hibernate实体映射浅谈
- Hibernate实体映射
- hibernate search 实体映射
- Hibernate实体映射
- hibernate实体映射
- hibernate实体类映射
- hdoj 5087 Revenge of LIS II 【第二长单调递增子序列】
- 关于微信支付
- js 字符串转换成数字的三种方法
- Android网络框架Volley(终极篇)
- Mac OSX下编译安装PostgreSQL
- Hibernate映射之实体映射<转载>
- 在Chrome上使用ActiveX控件
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Java探索之旅(11)——抽象类与接口
- Java线程(一):线程安全与不安全(转)
- maven编译报错“不兼容的类型”
- 剑指offer学习-赋值运算符重载
- C#使用NPOI处理大数据量EXCEl2007
- 可能应发革命的四门语言