Hibernate Annotations @Any 使用场景

使用hibernate时,你是否遇到如下蛋疼大场景

1@Entity 2@Table(name = "contr_Contract") 3@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 4@MetaData(value = "合同") 5public class Contract extends BaseEntity<Long> { 6 7 @MetaData(value = "合同编号") 8 @EntityAutoCode 9 private String contrNo; 10 11 @MetaData(value = "合同类型") 12 @EntityAutoCode 13 private ContrTypeEnum contrType; 14 15 @MetaData(value = "销售合同") 16 private SaleContract saleContr; 17 18 @MetaData(value = "代理合同") 19 private ProxyContract proxyContr; 20 21 @MetaData(value = "租赁合同") 22 private LeaseContract leaseContr; 23 24 @MetaData(value = "赠予合同") 25 private GiftContract giftContr; 26........................................ 27}

来吧 使用 Hibernate @any 

1@Any( metaColumn = @Column( name = "contr_class_type" ), fetch=FetchType.EAGER ,optional=true) 2 @AnyMetaDef( 3 idType = "long", 4 metaType = "string", 5 metaValues = { 6 @MetaValue( value = "SALE", targetEntity = SaleContract.class), 7 @MetaValue( value = "PROXY", targetEntity = ProxyContract.class ), 8 @MetaValue( value = "LEASE", targetEntity = LeaseContract.class ), 9 @MetaValue( value = "GIFT", targetEntity = GiftContract.class ), 10 } ) 11 @JoinColumn( name = "contr_id" ) 12 @Index(name = "contr_id",columnNames={"contr_id"}) 13 public ContractBaseEntity getContr() { 14 return contr; 15 } 16 17 18 19 20 21 22 23 24 25@Any -> 26metaColumn = @Column( name = "contr_class_type" ) 辨别类别 具体存的是 27@AnyMetaDef 定义的 @MeteValue.value
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

SpringBoot自定义序列化的使用方式

场景及需求:项目接入了SpringBoot开发,现在需求是服务端接口返回的字段如果为空,那么自动转为空字符串。例如:\    {        "id":1,        "name":null    },    {        "id":2,        "name":"x

SpringBoot整合Redis乱码原因及解决方案

问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa