持久化类的要求

持久化类的要求

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();
    }
}
时间: 2024-12-15 11:33:35

持久化类的要求的相关文章

笔记:Hibernate 持久化类标注示例-双向1-N关系映射

1-N关系的1端持久化类 package org.drsoft.hibernate.model.oneToMany; ? ? import java.util.Date; import java.util.Set; ? ? import javax.persistence.*; ? ? @Entity @Table(name = "OneToMany_One") public class OneToManyForOneModel { @Id @Column(name = "R

笔记:Hibernate 持久化类标注说明

持久化类标注 标注 @Entity:注解声明该类是一个Hibernate的持久化类 标注 @Table:指定该类映射的表 参数 name:指定映射数据库表的名称 参数 uniqueConstraints:为持久化类所映射的表设置唯一约束,该属性的值是 @UniqueConstraint 标注数组 参数 indexes:为持久化类说映射的表设置索引,该属性的值是 @Index 标注数组 参数 catalog:设置持久化类说映射的表放入指定的 catalog 中,没有指定则放入默认 catalog

Hibernate中如何完成持久化类和数据库映射文件

因为最近写项目需要要到,就在这里码码字,方便以后做一个参考,在这里,我通过的是myeclipse的反向工程来配置持久化类和数据的映射文件的. 1.打开myeclipse,打开数据库视图,对应的是Windows->open perspective->myeclipse database explore. 2.在出现的视图中我们选择对应的数据库,右键进行连接,接着去我们连接的对应的数据库下获取相应的table,在选定的table上右键,就会出现如下图所示的样例 选择上面的hibernate rev

[NHibernate]持久化类(Persistent Classes)

系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 引言 持久化类是应用程序用来解决商业问题的类(比如,在电子交易程序中的Customer和Order).持久化类,就如同它的名字暗示的,是短暂存在的,它的实例会被持久性保存于数据库中. 如果这些类符合简单的规则,NHibernate能够工作的最好,这些规则就是Plain Old CLR Object(POCO,简单传统CLR对象)编程模型. POCO简单示例 用一个类描述一只猫: 1 publi

idea 根据数据库表自动创建持久化类

一.点击最右边的Database: 二.点击,再点DataSource选择数据库类型,配置数据库信息: 三.打开项目结构,选择,找到你的项目,点击,添加hibernate: 四.如果有现成的cfg.xml文件,则选择右边的添加按钮,将xml文件添加进来: 五.选择左下角的Persistence按钮,选择hibernate配置文件生成实体: 六.选择数据源,选择实体类所在的包,选择表: 这样生成的持久化类是注解方式配置的. 如果想用xml配置,可以通过以下的设置,自动生成hbm.xml配置文件:

持久化类设计

注意: 持久化类通常建议有一个持久化标识符(ID) 持久化标识符通常建议使用封装类(基本类型有默认值) 持久化类通常建议手动给定一个无参数的构造器(因为有一些操作,是反射进行的) 属性通常建议提供getting.setting方法 持久化类不能是final 持久化类中如果使用了集合类型属性,只能使用接口类型进行声明(List,Set,Map)

持久化类的三种实例状态

一个持久化类的实例可能处于三种不同状态中的某一种.这三种状态的定义则与所谓的持久化上下文(persistence context)有关.hibernate的session对象就是这个所谓的持久化上下文. 瞬态:该实例从未与任何持久化上下文关联过.它没有持久化标识(相当于主键值). 持久化:实例目前与某个持久化上下文有关联.它拥有持久化标识(相当于主键值),并且可能在数据库中有一个对应的行.对于某一个特定的持久化上下文,hiberanate保证持久化标识与java标识(其值代表对象在内存中的位置)

myeclipse自动生成可持久化类的映射文件的方法

首先在透视图中选择DB Browser视图: . 然后按照下面的截图一步一步做就可以了. 在偏好设置中选择MyEclipse--Database Explorer--Drivers,配置数据库驱动: . 新建数据库驱动,选择Oracle Thin Driver模板,并且在Driver Jars中选择恰当的JDBC包: . 这样数据库驱动就配置好了,下面是使用配置好的驱动连接数据库,首先新建连接: . 新建连接配置文件: . 选择刚才的驱动配置文件,并且给连接配置文件取名,按照格式填入数据库连接U

5 -- Hibernate的基本用法 --5 1 持久化类的要求

1.  提供一个无参数的构造器:所有的持久化类都应该提供一个无参数的构造器,这个构造器可以不采用public访问控制符.只要提供了无参数的构造器,Hibernate就可以使用Constructor.newInstance()来创建持久化类的实例了.通常,为了方便Hibernate在运行时生成代理,构造器的访问控制修饰符至少是包课件的,及大于或等于默认的访问控制符. 2. 提供一个标识属性:标识属性通常映射数据库表的主机字段.这个属性可以叫任何明智,其类型可以是任何的基本类型.基本类型的包装类型.