1、实体类最好有主键列,并有对应的getter、setter方法,主键类型最好使用对象类型,如
Integer、String、Long等,而不是用int、String,long,因为如果主键为null,则表示该实
体类没有保存到数据库,是一个临时状态(Transient),而基本类型不具备这些功能
2、@配置中,如果某属性没有配置,则默认该属性名与数据表列名相同;而xml配置中,如果
某属性没有配置,则该属性某有对应的数据库列,不参与持久化。
3、java.sql.Date(只含有日期),java.sql.Time(只含有时间),java.sql.Timestamp(
含有日期和时间)都是java.util.Date的子类。如java类中属性类型是java.util.Date在@
配置和xml配置方式如下:
@Temporal(TemporalType.TIMESTAMP) //指定具体的类型
@Column(name="createDate")
private java.util.Date createDate
<property name="createDate" type="timestamp"></property>
4、临时属性映射:临时属性是指在数据库表中不存在对应列的属性。在xml配置中,临时属性
不配即可,在@配置中如下:
@Transient
int nameLength
5、悲观锁与乐观锁:悲观锁,当某线程修改数据库表某一记录的时候,获得数据锁,不允许
其他线程修改数据记录,修改完毕后释放数据锁。乐观锁,是采用在数据库表中加version列
的形式。