隨筆 - 0, 文章 - 75, 評論 - 0, 引用 - 0
          數據加載中……

          Annotation與XML配置表名、屬性名、日期類型、枚舉類型

          如果javabean類名與DB表名不同時:


          @Entity


          @Table(name="DB表名")


          public class Teacher{


          .....


          }



          XML修改方式:


          <class name="Teacher" table="DB數據表名">


          -----------------------------------------


          對比:


          如果XML中不配置<property>則該字段不做映射


          Annotation中,默認都做映射


          只需指明@Id 主鍵


          默認屬性名前是:@Basic


          @Basic //默認都是Basic 可不寫
          public String getName()
          {
          return name;
          }



          如果字段(屬性)名與列名不同:


          XML修改:


          <property name="name" column="列名"></property>



          Annotation方式:


          @Column(name="s_title")
          public String getTitle() {
          return
          title;
          }



          這些注解都寫在get()方法前,導包要javax.persistent下


          因為是符合JPA標準的Annotation


          -----------------------------------------


          Annotation javaBean中,如果不想持久化某個屬性:


          @Transient //不持久化該屬性
          public String getYourWifeName()
          {
          return yourWifeName;
          }



          XML中則是不寫該屬性的<property>


          -----------------------------------------


          保存日期類型屬性時:(并不多)


          @Temporal(TemporalType.DATE)
          public Date getBirthday()
          {
          return birthday;
          }


          TemporalType.DATE只保存日期


          如果不指定@Temporal 則DB表字段類型為DATETIME


          指定為TemporalType.DATE后,DB字段類型為DATE類型,只存日期



          XML實現:


          <property name="birthday" type="date" >


          <property name="birthday" type="time" >


          -----------------------------------------


          當屬性有枚舉類型時:


          使用XML映射Enum非常麻煩,去問谷老師,搜“Hibernate映射枚舉類型”


          Annotation配置:


          @Enumerated(EnumType.STRING) //保存enum元素的值對應varchar
          public ZhiCheng
          getZhiCheng() {
          return zhiCheng;
          }


          EnumType.ORDINAL是保存枚舉元素的索引位置,對應數據庫中integer(number)


          -----------------------------------------


          字段映射的位置:


          注解寫在Field前還是get()方法前?


          都可以


          如果寫在Field前,則破壞了OOP的封裝性,private成員不可以隨意訪問


          大多數寫在get()方法前


          -----------------------------------------

          posted on 2012-04-22 16:01 hantai 閱讀(265) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 炉霍县| 嘉荫县| 保德县| 垫江县| 江油市| 余江县| 岳普湖县| 黔西县| 棋牌| 绥化市| 滨州市| 元朗区| 龙井市| 阳新县| 万源市| 日喀则市| 唐山市| 临安市| 常山县| 甘南县| 精河县| 敦煌市| 华宁县| 华安县| 吕梁市| 基隆市| 道孚县| 清水河县| 绥德县| 启东市| 宜川县| 临汾市| 左贡县| 锡林郭勒盟| 永泰县| 永胜县| 墨脱县| 汉阴县| 高雄市| 奉化市| 怀远县|