Hibernate Annotation List

Hibernate注解

  1.     
  2. @Entity                          --声明为一个实体bean      
  3.     
  4. @Table (name= "promotion_info" )   --为实体bean映射指定表(表名="promotion_info)      
  5.     
  6. @Id                              --声明了该实体bean的标识属性      
  7.     
  8. @GeneratedValue                  --可以定义标识字段的生成策略.      
  9.     
  10. @Transient                       --将忽略这些字段和属性,不用持久化到数据库      
  11.     
  12. @Column (name= "promotion_remark" )--声明列(字段名= "promotion_total" ) 属性还包括(length= 200 等)      
  13.     
  14. @Temporal (TemporalType.TIMESTAMP)--声明时间格式      
  15.     
  16. @Enumerated                      --声明枚举      
  17.     
  18. @Version                         --声明添加对乐观锁定的支持      
  19.     
  20. @OneToOne                        --可以建立实体bean之间的一对一的关联      
  21.     
  22. @OneToMany                       --可以建立实体bean之间的一对多的关联      
  23.     
  24. @ManyToOne                       --可以建立实体bean之间的多对一的关联      
  25.     
  26. @ManyToMany                      --可以建立实体bean之间的多对多的关联      
  27.     
  28. @Formula                         --一个SQL表达式,这种属性是只读的,不在数据库生成属性(可以使用sum、average、max等)   
  29.     
  30.  
  31.     
  32. Entity      
  33.     
  34. @Table (name= "promotion_info" )      
  35.     
  36. public   class  Promotion  implements  Serializable {      
  37.     
  38.      
  39.     
  40.      //AUTO--可以是identity类型的字段,或者sequence类型或者table类型,取决于不同的底层数据库      
  41.     
  42.      @Id        
  43.     
  44.      @GeneratedValue (strategy = GenerationType.AUTO)      
  45.     
  46.      private  Long id;      
  47.     
  48.      
  49.     
  50.      @Column (name= "group_start_amount" )      
  51.     
  52.      private  Integer groupStartAmount= 0 ;      
  53.     
  54.           
  55.     
  56.      @Column (name= "promotion_remark" ,length= 200 )      
  57.     
  58.      //@Lob 如果是文章内容可以使用 只需要把length=200去掉就可以了      
  59.     
  60.      private  String remark;      
  61.     
  62.      //DATE      - java.sql.Date      
  63.     
  64.      //TIME      - java.sql.Time      
  65.     
  66.      //TIMESTAMP - java.sql.Timestamp      
  67.     
  68.      @Temporal (TemporalType.TIMESTAMP)      
  69.     
  70.      @Column (name= "start_time" )      
  71.     
  72.      private  Date startTime;      
  73.     
  74.      
  75.     
  76.      //显示0 隐藏1      
  77.     
  78.      public   static   enum  DisplayType {      
  79.     
  80.         显示,隐藏      
  81.     
  82.     }      
  83.     
  84.      @Enumerated (value = EnumType.ORDINAL) //ORDINAL序数      
  85.     
  86.      private  DisplayType displayType = DisplayType.显示;      
  87.     
  88.      
  89.     
  90.      @Version      
  91.     
  92.      private  Integer version;      
  93.     
  94.      
  95.     
  96.      //CascadeType.PERSIST   -- 触发级联创建(create)      
  97.     
  98.      //CascadeType.MERGE     -- 触发级联合并(update)      
  99.     
  100.      //FetchType.LAZY        -- 延迟加载      
  101.     
  102.      @ManyToOne (cascade = {CascadeType.PERSIST,CascadeType.MERGE},fetch = FetchType.LAZY)      
  103.     
  104.      private  PromotionGroup promotionGroup;      
  105.     
  106.      
  107.     
  108.      //单向ManyToMany      
  109.     
  110.      //@JoinTable(关联的表名)      
  111.     
  112.      //joinColumns -- promotion关联的列的外键      
  113.     
  114.      //inverseJoinColumns -- largess 关联列的外键      
  115.     
  116.      @ManyToMany (cascade = {CascadeType.PERSIST,CascadeType.MERGE})      
  117.     
  118.      @JoinTable (name= "promotion_largess" ,joinColumns={ @JoinColumn (name= "promotion_id" )},inverseJoinColumns={ @JoinColumn (name= "largess_id" )})      
  119.     
  120.      private  Set<Largess> largess;       
  121.     
  122.      
  123.     
  124.      //get set 省略....      
  125.     
  126.      
  127.     
  128. }      
  129.     
  130. @Entity      
  131.     
  132. @Table (name= "promotion_group" )      
  133.     
  134. public   class  PromotionGroup  implements  Serializable {      
  135.     
  136.      @Id        
  137.     
  138.      @GeneratedValue (strategy = GenerationType.AUTO)      
  139.     
  140.      private  Long id;      
  141.     
  142.           
  143.     
  144.      //mappedBy的值"promotionGroup"指向owner(Promotion)端的关联属性,并且是双向关系      
  145.     
  146.      @OneToMany (mappedBy= "promotionGroup" ,cascade=CascadeType.ALL)      
  147.     
  148.      private  List<Promotion> promotion;      
  149.     
  150.      
  151.     
  152.      //get set 省略....      
  153.     
  154. }      
  155.     
  156. @Entity      
  157.     
  158. @Table (name= "largess" )      
  159.     
  160. public   class  Largess  implements  Serializable {      
  161.     
  162.      @Id        
  163.     
  164.      @GeneratedValue (strategy = GenerationType.AUTO)      
  165.     
  166.      private  Long id;      
  167.     
  168.      
  169.     
  170.      //1.sql语句中的字段和表名都应该和数据库相应,而不是类中的字段,      
  171.     
  172.      //若带有参数如la.id= id,这个=id才是类中属性      
  173.     
  174.      //2.操作字段一定要用别名      
  175.     
  176.      @Formula (select max(la.id) from largess as la)      
  177.     
  178.      private   int  maxId;      
  179.     
  180.      
  181.     
  182.      @Formula (select COUNT(la.id) from largess la)      
  183.     
  184.      private   int  count;      
  185.     
  186.      
  187.     
  188.      @Transient      
  189.     
  190.      private  String img      
  191.     
  192.      
  193.     
  194.      //get set 省略....      
  195.     
  196. }   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值