Hibernate中区分值(Value)类型和实体(Entity)类型

有时候再用Hibernate的时候会抛出这样的一个异常“Unknown entity class:mypack.Address”

比如说,上面的情况是这样的

session.load(Address.class,newLong(1));

session.save(addr);

packagemypack;

importjava.io.Serializable;

publicclassCustomerimplementsSerializable{

privateLongid;

privateStringname;

privatemypack.AddresshomeAddress;

//省略构造方法

}

Address类是一个包含省市县的类

,很显然Address类没有OID,这是Hibernate组建的一个重要特征。由于Address类没有OID,因此不能通过Session来单独保存、更新、删除或者添加一个Address对象。

Hibernate把持久化类分为两种:值类型和实体类型。

两者最为重要的区别就是前者没有OID,不能被单独持久化,他的生命周期依赖于所持久化类的对象的生命周期。试题类型有OID所以可以持久化

[/size][size=medium]

相关推荐