1.Hibernate.cfg.xml: hbm2ddl.auto

   a)如果需要显示这些DDL语句,可以使用log4j日志框架将这些DDL语句打印出来

   b)先建表还是先建实体类:理论上是先建实体类再建表,而实际应用时往往是先建表再建实体类

 

2.搭建日志环境并配置显示DDL语句

 

3.搭建JUnit环境

     a)需要注意JUnit的Bug

 

4.hibernate.cfg.xml:  show_sql

     配置是否需要显示DML语句

 

5.Hibernate.cfg.xml: format_sql

     配置是否需要格式化DML语句,即美化输出的DML语句

注意:format_sql需要与show_sql配合使用

 

6.表名和类名不同,对表名进行配置

      a) Annotation:@Table

      b)xml:table=””

 

7.字段名和属性相同

   a)默认@Basic

   b)xml中不用写column

8.字段名和属性名不同

a)Annotation : @Column(name=””)

b)xml:column

 

9.show_sql和ddl(data definition  language) 的说明

   Show_sql是hibernate.cfg.xml配置文件的配置。日志跟hibernate.cfg.xml配置文件没关系,是hibernate的类执行过程中能够显示的信息。ddl语句在hibernate中是配置不出来的,只能用用日志将ddl语句配置出来

 

10.不需要persistence的字段

     a) Annotation: @Transient(注意:import javax.persistence.Transisent)

     b)xml:不配置该属性的映射

 

11.映射日期与时间类型,指定时间精度(注意:import java.util.date;在Java类里面一般应util.date而不是sql.date)

a)Annotation:@Temporal(用来指定只记录日期还是只记录时间或2者都记录)

b)xml:用type指定,eg:<property name=”birthdate” type=”date”> 日期

 

12.映射枚举类型

     a)@Enumerated(EnumType.STRING)等于@Enumerated(value=“EnumType.STRING”),因为在anntotion中value=可以省略;当value的值设为EnumType.STRING时,数据库对应字段的属性为varchar类型(也就是说按string类型把数据存储到数据库中),当value的值设置成EnumType.ORDINAL时,数据库字段类型会映射成为integer类型

     b) xml:

 

13.字段映射的位置(field或者get方法,推荐get方法上,因为写在field上就破换了java的object oriented的封装性)

      A) best practice(最佳实践):保持field(属性)和get set方法的一致