首页 > 代码库 > 持久化类的要求

持久化类的要求

持久化类的要求

1.Hibernate对于持久化类没有太多的要求,但是还是应该遵循以下的原则来创建持久化类:

(1)提供一个无参数的构造器:

  此构造器可以不是被public所修饰,但是只要有无参构造器,Hibernate就可以使用Constructor.newInstance()来创建持久化类实例了,为了方便Hibernate在运行时生成代理,构造器的访问修饰符至少是包可见的。

(2)提供一个标识属性:

  标识属性通常映射数据库表的主键字段。

(3)为持久化类的每个成员变量提供setter、getter方法;

(4)使用非final类;

(5)重写equals()和hashCode()方法:

2.持久化类可以拥有子类,持久化类的子类可以继承父类的标识属性。

3.写一个简单的持久化类(PO):

package test1;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="teacher_info")
public class Teachers {
    //设置标识属性
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer tId;
    private String name;
    private Integer age;
    //提供无参构造方法
    public Teachers(){
        
    }
    //提供setter、getter方法
    public void setTId(Integer tId){
        this.tId = tId;
    }
    public Integer getTId(){
        return this.tId;
    }
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }
    public void setAge(Integer age){
        this.age = age;
    }
    public Integer getAge(){
        return this.age;
    }
    //重写equals方法
    public boolean equals(Object obj){
        if(obj==null){
            return false;
        }else if(this==obj){
            return true;
        }else if(obj instanceof Teachers){
            Teachers tea = (Teachers) obj;
            return tea.getTId().equals(this.getTId());
        }else{
            return false;
        }
    }
    //重写hashCode方法
    public int hashCode(){
        return this.getTId();
    }
}

 

 

 

持久化类的要求