1、pojo类注意 public class User implements Serializable { public User() { } } hibernate不要求持久化
类实现Serializable(可序列化)。然而,当对象被存储在一个HttpSession中,或者用RMI按值传递时,就需要系列化。
2、识别实体和值类型 如果一个引用类是共享引用的,则该类必须是一个实体。而值类型只传递值,
不涉及其它的关联。
3、用引号把sql标识符括起来 <property name="description" column="'DESCRIPTION'"></property>
有些数据库中的元素要区分大小写,特别是遗留数据库中的奇怪字符或者空格的标识符时,很有用。
4、实现命名约定假设数据库中的所有表(对应映射文件中的table属性)都要遵循tb_<table_name>。
一种解决方法是实现Hibernate中的NamingStrategy接口
public class CENamingStrategy extends ImprovedNamingStrategy
{ public String classToTableName(String className){ return StringHelper.unqualify(className); }
public String propertyToColumnName(String propertyName){ return propertyName; }
public String tableName(String talbeName){ return "tb_"+tableName; }
pbulic String columnName(String columnName){ return columnName; }
public String propertyToTalbeName(String className,String propertyName)
{ return "tb_"+classToTableName(className)+"_"propertyToColumnName(propertyName); } }
在配置文件中指定了表属性如: <class name="BackAccount" table="BANK_ACCOUNT">
那么实际数据库中表是tb_BANK_ACCOUNT 启动一个命名策略 Configuration cfg=new Configuration();
cfg.setNaming Stategy(new CENamingStrategy());
SessionFactory sf=cfg.configure().buildSessionFactory(); [/code]
5、hibernate的持久化类需有空的参数的构造函数