hibernate学习记录

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的持久化类需有空的参数的构造函数

 

你可能感兴趣的:(sql,Hibernate)