Hibernate 持久化类
hibernate 持久化类
hibernate 的完整概念是提取 java 类属性中的值,并且将它们保存到数据库表单中。
映射文件能够帮助 hibernate 确定如何从该类中提取值,并将它们映射在表格和相关域中。
在 hibernate 中,其对象或实例将会被存储在数据库表单中的 java 类被称为持久化类。
若该类遵循一些简单的规则或者被大家所熟知的 plain old java object (pojo) 编程模型,hibernate 将会处于其最佳运行状态。以下所列就是持久化类的主要规则,然而,在这些规则中,没有一条是硬性要求。
- 所有将被持久化的 java 类都需要一个默认的构造函数。
- 为了使对象能够在 hibernate 和数据库中容易识别,所有类都需要包含一个 id。此属性映射到数据库表的主键列。
- 所有将被持久化的属性都应该声明为 private,并具有由 javabean 风格定义的 getxxx 和 setxxx 方法。
- hibernate 的一个重要特征为代理,它取决于该持久化类是处于非 final 的,还是处于一个所有方法都声明为 public 的接口。
- 所有的类是不可扩展或按 ejb 要求实现的一些特殊的类和接口。
pojo 的名称用于强调一个给定的对象是普通的 java 对象,而不是特殊的对象,尤其不是一个 enterprise javabean。
一个简单的 pojo 的例子
基于以上所述规则,我们能够定义如下 polo 类:
public class employee { private int id; private string firstname; private string lastname; private int salary; public employee() {} public employee(string fname, string lname, int salary) { this.firstname = fname; this.lastname = lname; this.salary = salary; } public int getid() { return id; } public void setid( int id ) { this.id = id; } public string getfirstname() { return firstname; } public void setfirstname( string first_name ) { this.firstname = first_name; } public string getlastname() { return lastname; } public void setlastname( string last_name ) { this.lastname = last_name; } public int getsalary() { return salary; } public void setsalary( int salary ) { this.salary = salary; } }