JPA之注解

  1. @Entity                            --声明为一个实体bean      
  2. @Table  (name=  "promotion_info"  )    --为实体bean映射指定表(表名="promotion_info)      
  3. @Id                                --声明了该实体bean的标识属性      
  4. @GeneratedValue                    --可以定义标识字段的生成策略.      
  5. @Transient                         --将忽略这些字段和属性,不用持久化到数据库      
  6. @Column  (name=  "promotion_remark"  )--声明列(字段名=  "promotion_total"  ) 属性还包括(length=  200  等)      
  7. @Temporal  (TemporalType.TIMESTAMP)--声明时间格式      
  8. @Enumerated                        --声明枚举      
  9. @Version                           --声明添加对乐观锁定的支持      
  10. @OneToOne                          --可以建立实体bean之间的一对一的关联      
  11. @OneToMany                         --可以建立实体bean之间的一对多的关联      
  12. @ManyToOne                         --可以建立实体bean之间的多对一的关联      
  13. @ManyToMany                        --可以建立实体bean之间的多对多的关联      
  14. @Formula                           --一个SQL表达式,这种属性是只读的,不在数据库生成属性(可以使用sum、average、max等)     
  15.   
  16.   
  17.   
  18. @Entity       
  19. @Table  (name=  "promotion_info"  )      
  20. public   class  Promotion  implements  Serializable {      
  21.      
  22.      //AUTO--可以是identity类型的字段,或者sequence类型或者table类型,取决于不同的底层数据库       
  23.      @Id       
  24.      @GeneratedValue  (strategy = GenerationType.AUTO)      
  25.      private  Long id;      
  26.      
  27.      @Column  (name=  "group_start_amount"  )      
  28.      private  Integer groupStartAmount=  0  ;      
  29.           
  30.      @Column  (name=  "promotion_remark"  ,length=  200  )      
  31.      //@Lob 如果是文章内容可以使用 只需要把length=200去掉就可以了       
  32.      private  String remark;      
  33.      //DATE       - java.sql.Date       
  34.      //TIME       - java.sql.Time       
  35.      //TIMESTAMP - java.sql.Timestamp       
  36.      @Temporal  (TemporalType.TIMESTAMP)      
  37.      @Column  (name=  "start_time"  )      
  38.      private  Date startTime;      
  39.      
  40.      //显示0 隐藏1       
  41.      public   static   enum  DisplayType {      
  42.          显示,隐藏      
  43.      }      
  44.      @Enumerated  (value = EnumType.ORDINAL)  //ORDINAL序数       
  45.      private  DisplayType displayType = DisplayType.显示;      
  46.      
  47.      @Version       
  48.      private  Integer version;      
  49.      
  50.      //CascadeType.PERSIST    -- 触发级联创建(create)       
  51.      //CascadeType.MERGE      -- 触发级联合并(update)       
  52.      //FetchType.LAZY         -- 延迟加载       
  53.      @ManyToOne  (cascade = {CascadeType.PERSIST,CascadeType.MERGE},fetch = FetchType.LAZY)      
  54.      private  PromotionGroup promotionGroup;      
  55.      
  56.      //单向ManyToMany       
  57.      //@JoinTable(关联的表名)       
  58.      //joinColumns -- promotion关联的列的外键       
  59.      //inverseJoinColumns -- largess 关联列的外键       
  60.      @ManyToMany  (cascade = {CascadeType.PERSIST,CascadeType.MERGE})      
  61.      @JoinTable  (name=  "promotion_largess"  ,joinColumns={  @JoinColumn  (name=  "promotion_id"  )},inverseJoinColumns={  @JoinColumn  (name=  "largess_id"  )})      
  62.      private  Set<Largess> largess;      
  63.      
  64.      //get set 省略....       
  65.      
  66. }      
  67. @Entity       
  68. @Table  (name=  "promotion_group"  )      
  69. public   class  PromotionGroup  implements  Serializable {      
  70.      @Id       
  71.      @GeneratedValue  (strategy = GenerationType.AUTO)      
  72.      private  Long id;      
  73.           
  74.      //mappedBy的值"promotionGroup"指向owner(Promotion)端的关联属性,并且是双向关系       
  75.      @OneToMany  (mappedBy=  "promotionGroup"  ,cascade=CascadeType.ALL)      
  76.      private  List<Promotion> promotion;      
  77.      
  78.      //get set 省略....       
  79. }      
  80. @Entity       
  81. @Table  (name=  "largess"  )      
  82. public   class  Largess  implements  Serializable {      
  83.      @Id       
  84.      @GeneratedValue  (strategy = GenerationType.AUTO)      
  85.      private  Long id;      
  86.      
  87.      //1.sql语句中的字段和表名都应该和数据库相应,而不是类中的字段,       
  88.      //若带有参数如la.id= id,这个=id才是类中属性       
  89.      //2.操作字段一定要用别名       
  90.      @Formula  (select max(la.id) from largess as la)      
  91.      private   int  maxId;      
  92.      
  93.      @Formula  (select COUNT(la.id) from largess la)      
  94.      private   int  count;      
  95.      
  96.      @Transient       
  97.      private  String img      
  98.      
  99.      //get set 省略....       
  100. }   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值