Review_Hibernate

阅读更多

1.Hibernate不会从web加载DTD文件,但它会首先在应用程序的classpath中查找.DTD文件已包括在hibernate3.jar里,同时也在Hibernate发布包的src/目录下.
2.Hibernate的映射文件中property会试着确定正确的转换类型和它的映射类型.在某些情况下这个自动检测(在java上使用反射机制)一会产生你所期待或需要的default value.如date属性就是个很好的例子,Hibernate无法知道这个属性(java.util.Date类型的)应该被映射成:SQL date,或timestamp,还是time字段.在此例中,把这个属性映射成timestamp转换器,这样我们预留日期和时间的全部信息.
3.如果你有如下需求,你必须重载equals()和hashCode()方法:
   想把持久类的实例放入Set中;想重用脱管实例.

4.hibernate映射文件中的property中的formula :一个sql表达式,定义了这个计算属性的值.计算属性没有和它对应的数据库字段.

5.基于连接表的单向一对多关联:

  
                unique="true"
             class="Address" />

基于连接表的单向多对一关联:
      optional="true">
    
                  column="addressId"
             not-null="true" />

6.  如果要将多个对象持久化,你必须调用经常的调用flush()以及clear()来控制第一级缓存的大小.
  for(int i=0;i<10000000;i++){
 Customer customer=new Customer();
 session.save(customer);
 if(i%20==0){
 //20,same as the JDBC batch size
 session.flush();
 session.clear();
}

7.left join 是left outer join 的简写 



你可能感兴趣的:(Hibernate,SQL,JDBC,Web)