Java世界

          學習筆記

          常用鏈接

          統計

          積分與排名

          天籟村

          新華網

          雅虎

          最新評論

          JPA插入或者修改數據的時候使用數據庫表的default值(JPA動態插入動態更新)

          使用JPA的時候,當我們插入數據的時候,我們不僅可以自己在model類里面賦初值,還可以使用數據庫表的default值。希望大家通過以下對JPA學習,能對大家有幫助。

            讓我們開始進行JPA學習吧。首先,我們在model類里面為column設置數據庫default值,以前使用Hibernate的時候的做法是添加sql-type,例如:
          <property name="viewDate" not-null="false" type="java.util.Date">  
             <column name="viewDate" sql-type="datetime; default getdate()"/>  
          </property>

          JPA里面使用columnDefinition代替sql-type:
              @Column(columnDefinition="datetime default getdate()")
              @Temporal(javax.persistence.TemporalType.TIMESTAMP)
              private Date viewDate;

          那么,當我們的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{
          //省略其他字段
          ......
              @Column(columnDefinition="datetime default getdate()")
              @Temporal(javax.persistence.TemporalType.TIMESTAMP)
              private Date viewDate;
          //注意,這里不要給viewDate一個初始值,例如viewDate = new Date();是錯的。只有null才會在加入的時候,使用到dynamicInsert
          //省略getter,setter
          ......
          }

          那么,當加入一條MyEntity記錄的時候,我們的viewDate為null,就可以取數據庫時間了。希望通過JPA學習,能幫到大家獲得需要的知識。

          posted on 2010-12-20 13:55 Rabbit 閱讀(7403) 評論(1)  編輯  收藏

          評論

          # re: JPA插入或者修改數據的時候使用數據庫表的default值(JPA動態插入動態更新) 2015-05-11 11:00 123456789

          健康減肥咖啡姐看風景  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 汕尾市| 鄂州市| 宾阳县| 锦州市| 邯郸县| 本溪市| 涿鹿县| 县级市| 阿城市| 威海市| 饶平县| 峨眉山市| 建水县| 大名县| 嘉兴市| 南平市| 桃江县| 本溪市| 吴川市| 怀仁县| 山东省| 肃宁县| 垦利县| 中江县| 天峨县| 绥棱县| 弥勒县| 新乡县| 东宁县| 布尔津县| 台南县| 高要市| 寻甸| 镇巴县| 屏南县| 名山县| 金沙县| 宁德市| 彝良县| 嘉黎县| 易门县|