博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Jpa hibernate】一对多@OneToMany,多对一@ManyToOne的使用
阅读量:7244 次
发布时间:2019-06-29

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

项目中使用实体之间存在一对多@OneToMany,多对一@ManyToOne的映射关系,怎么设置呢?

可以查看完整项目

下面给一个例子:

类似于一个部门对应多个员工

这里给出 一个流水账单对应多条订单折扣信息

 

流水账单类:

package com.agen.orderdiscount.entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.experimental.Accessors;import org.hibernate.annotations.GenericGenerator;import javax.persistence.*;import java.util.Date;import java.util.List;/** * 流水账单 * 请求提现以后,被记录在流水账单 * @author SXD * @date 2018/1/16 */@Data(staticConstructor = "of")@NoArgsConstructor@AllArgsConstructor@Accessors(chain = true)@Entity@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator" )public class RunningAccount {    /**     * 账单ID     */    @Id    @GeneratedValue(generator = "uuid2")    @Column(length = 36)    private String raId;    /**     * 流水账单编号     */    @Column(nullable = false,length = 100)    private String raSn;    /**     * 流水金额     */    @Column(nullable = false,precision = 10,scale = 2)    private Double raAccount;    /**     *流水账时间     */    @Column(nullable = false)    private Date raDate;    /**     * 流水账单 状态     * 1    请求提现     * 2    通过提现请求,提现成功     * 3    拒绝提现请求,提现失败     * 4    通过部分提现请求中的订单,拒绝部分提现请求中的订单     *     */    @Column(nullable = false)    private Integer accountStatus;    /**     * 操作来源     */    @Column(nullable = false,length = 20)    private String raOperater;    /**     * 流水备注1     */    @Column(length = 500)    private String ratCre1;    /**     * 流水备注2     */    @Column(length = 500)    private String ratCre2;    /**     * 关联子集流水账单     * 例如:本次提现 涉及到哪些订单,这些订单分别对应哪些可提现的流水     *     * mappBy表示关系被维护端,只有关系端有权去更新外键。     * 这里还有注意OneToMany默认的加载方式是赖加载。当看到设置关系中最后一个单词是Many,那么该加载默认为懒加载     */    @OneToMany(cascade = {CascadeType.REFRESH,CascadeType.MERGE},mappedBy = "parentRa",fetch = FetchType.EAGER)    private List
childAvamounts;}
View Code

 

订单折扣信息类:

package com.agen.orderdiscount.entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.experimental.Accessors;import org.hibernate.annotations.GenericGenerator;import javax.persistence.*;import java.util.Date;/** * 可提现金额 * 报告完成,订单完结 从预估金额存入可提现金额 * @author SXD * @date 2018/1/16 */@Data(staticConstructor = "of")@NoArgsConstructor@AllArgsConstructor@Accessors(chain = true)@Entity@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator" )public class AvAmount {    /**     * 可提现ID     */    @javax.persistence.Id    @GeneratedValue(generator = "uuid2")    @Column(length = 36)    private String Id;    /**     * 本次转入可提现金额     */    @Column(nullable = false,precision = 10,scale = 2)    private Double avAccount;    /**     * 本条可提现金额记录 状态     * 1    可提现     * 2    请求提现,正在等待处理     * 3    已经成功转账,提现成功     * 4    不满足提现条件,被拒绝提现请求的     *     */    @Column(nullable = false)    private Integer amountStatus;    /**     * 本次转入时间     */    @Column(nullable = false)    private Date avDate;    /**     * 订单ID     */    @Column(nullable = false)    private Integer orderId;    /**     * 订单编号SN     */    @Column(nullable = false,length = 20)    private String orderSn;    /**     * 机构ID     */    @Column(nullable = false)    private Integer adminId;    /**     * 产品ID     */    @Column(nullable = false)    private Integer productId;    /**     * 会员ID     */    @Column(nullable = false)    private Integer memberId;    /**     * 采样包ID     */    @Column(nullable = false)    private Integer cybId;    /**     * 操作来源     */    @Column(nullable = false,length = 20)    private String avOperater;    /**     * 可提现金额备注1     */    @Column(length = 500)    private String avCre1;    /**     * 可提现金额备注2     */    @Column(length = 500)    private String avCre2;    /**     * 关联流水账单记录     *     * 这里设置JoinColum设置了外键的名字,Available是关系维护端     */    @ManyToOne(cascade = {CascadeType.MERGE,CascadeType.REFRESH})    @JoinColumn(name="parentRa")    private RunningAccount parentRa;}
View Code

 

转载于:https://www.cnblogs.com/sxdcgaq8080/p/8296210.html

你可能感兴趣的文章
在 Linux 上用火狐浏览器保护你的隐私
查看>>
《Hadoop MapReduce性能优化》一1.4 影响MapReduce性能的因素
查看>>
阿里云容器服务-高可用Kubernetes部署指南
查看>>
Make 命令教程
查看>>
Storm-源码分析-Stats (backtype.storm.stats)
查看>>
Java FP: 伪造闭包工厂,创建域对象
查看>>
《Linux C编程从入门到精通》一2.3 Linux中的代码编辑器vim
查看>>
《Redis入门指南》一5.1 PHP与Redis
查看>>
《Hack与HHVM权威指南》——1.6.2 未决的类型
查看>>
RPC综述 - PB, Thrift, Avro
查看>>
userdel 命令 - 从Linux系统中删除用户账户
查看>>
《Visual C++ 开发从入门到精通》——1.4 技术解惑
查看>>
属于自己的持续集成系统
查看>>
Java核心技术卷I基础知识2.4 运行图形化应用程序
查看>>
android 减少图片出现oom错误
查看>>
《C语言及程序设计》实践项目——循环嵌套
查看>>
阿里价值“千万”的秒杀场景参数优化
查看>>
互联网创业公司黑话指南,很严肃的,不许笑!
查看>>
设计模式之适配器模式
查看>>
2017新年快乐特效
查看>>