让我们开始进行JPA学习吧。首先,我们在model类里面为column设置数据库default值,以前使用Hibernate的时候的做法是添加sql-type,例如:
<property name="viewDate" not-null="false"type="java.util.Date">
</property>
在JPA里面使用columnDefinition代替sql-type:
那么,当我们的generateDdl设为true的时候,可以在数据库生成表,而且viewDate字段会带一个默认值getdate(),当我们的sql语句不带viewDate字段的时候,就会使用到getdate()去取数据库的系统时间。
以前Hibernate的做法是添加dynamic-insert="true"和dynamic-update="true"。但是JPA好像没有这个功能。如果你的JPA的Privider
是Hibernate的话可以添加如下Annotation为我们的实体提供dynamic-insert,dynamic-update,如下:
@Entity
@org.hibernate.annotations.Entity(dynamicInsert=true,dynamicUpdate=true)
public class MyEntity{
//省略其他字段
......
//注意,这里不要给viewDate一个初始值,例如viewDate = newDate();是错的。只有null才会在加入的时候,使用到dynamicInsert
//省略getter,setter
......
}