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方法的一致