博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JPA 联合主键配置
阅读量:2338 次
发布时间:2019-05-10

本文共 1628 字,大约阅读时间需要 5 分钟。


JPA 联合主键的配置,自己找了网上的一些写法,参考,,有两种实现方式:1. 使用 @Embeddable   @EmbedId 注解   2. @IdClass  @Id  。第一种,需要在主实体类里面 声明一个被@Embeddable注释的类的对象 字段,并且此字段上需要加上  @EmbedId

@Embeddablepublic class PeopleKey implements Serializable  {         @Column(name = "name")    private String name;         @Column(name = "idcardno")    private String idcardno;    // 省略setter,getter方法     @Override    public String toString() {        return "PeopleKey [name=" + name + ", idcardno=" + idcardno + "]";    }} @Entity@Table(name = "people")public class People extends PeopleKey{    // 复合主键要用这个注解    @EmbeddedId    private PeopleKey id;     @Column(name = "age")    private int age;}#摘自他人博客

编码过程中涉及到,对象dto 之间的copy ,上面写法就不友好了,自己摸索的写法,用@IdClass:

@MappedSuperclasspublic class JobStatisticsKey implements Serializable{    @Id    @Column(name = "job_date")    private String jobDate;    @Id    @Column(name = "worker_group")    private String workerGroup;   ##getter & setter    ## 参考别人博客要重写 hashCode & equals 方法,为什么,还有些疑问}@Entity@Table(name = "t_job_statistics")@IdClass(JobStatisticsKey.class)public class JobStatistics extends JobStatisticsKey{    @Column(name = "avg_exec_time")    private BigDecimal avgExecTime;    @Column(name = "avg_wait_time")    private BigDecimal avgWaitTime;    @Column(name = "max_exec_time")    private Integer maxExecTime;## getter  & setter }

还有一个需要注意就是 ,JpaRepository 的Id 泛型,写主键类JobStatisticsKey,我开始写的Long 也没报错,是没用到他的getOne或者deleteById方法:

@Repositorypublic interface JobStatisticsRepository extends JpaRepository
{ void deleteByJobDate(String jobDate); List
findByJobDateBetween(String startTime ,String endTime);}

 

 

 

转载地址:http://rcrpb.baihongyu.com/

你可能感兴趣的文章
tsung集群测试
查看>>
oracle定时删除表空间的数据并释放表空间
查看>>
servlet文件上传下载
查看>>
解决文件提示: /bin/ksh^M: bad interpreter: bad interpreter:No such file or directory
查看>>
ajaxanywhere jsp 使用
查看>>
jquery的使用
查看>>
如何静态化JSP页面
查看>>
XML 与 Java 技术: 用 Castor 进行数据绑定
查看>>
Python未知领域系列:(附Python学习教程+Python学习路线)Python高级教程之面向对象
查看>>
盘点Python 面向对象编程最容易被忽视的知识点
查看>>
Python:一个可以套路别人的python小程序
查看>>
用Python告诉你:这些年,我们点过的的那些外卖
查看>>
如何美观地打印Python对象?这个标准库可以简单实现
查看>>
写作路上的这些小成绩,铸就了一个不平庸的程序员
查看>>
程序员找工作的个人经验教训以及注意事项
查看>>
2019 编程语言排行榜:Java、Python 龙争虎斗!谁又屹立不倒
查看>>
拥有10年编程经验的你,为什么还一直停留在原地
查看>>
Flask vs Django,Python Web开发用哪个框架更好
查看>>
用Python制作动态二维码,一行代码就做到了
查看>>
Python说:常见的数据分析库有哪些
查看>>