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

GitHub地址:https://github.com/AngelSXD/myagenorderdiscount可以查看完整项目

下面给一个例子:

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

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

流水账单类:

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<AvAmount> childAvamounts; }

订单折扣信息类:

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; }

【Jpa hibernate】一对多@OneToMany,多对一@ManyToOne的使用的更多相关文章

  1. Java进阶知识10 Hibernate一对多_多对一双向关联(Annotation+XML实现)

    本文知识点(目录): 1.Annotation 注解版(只是测试建表)    2.XML版 的实现(只是测试建表)    3.附录(Annotation 注解版CRUD操作)[注解版有个问题:插入值时 ...

  2. Hibernate一对多OnetoMany

    ------------------------Hibernate一对多OnetoMany 要点: 配置在一端. 1.如果是单向关联,即只在一端配置OneToMany,多端不配置ManyToOne.则 ...

  3. 转Hibernate 一对多关联的CRUD__@ManyToOne(cascade=(CascadeType.ALL))

    一:Group和Users两个类 假定一个组里有n多用户,但是一个用户只对应一个用户组. 1.所以Group对于Users是“一对多”的关联关系@OneToMany Users对于Group是“多对一 ...

  4. Hibernate一对多、多对一关联

    一对多.多对一关联:在多方加外键 示例:Group(一方)和User(多方),一个Group可以有多个User,每个User只能属于一个Group   多对一单向关联 在User(多方)中建Group ...

  5. Hibernate关联映射(多对一 --- many-to-one)

    转自:https://blog.csdn.net/fengxuezhiye/article/details/7369786?utm_source=blogxgwz9 Hibernate的关联映射关系有 ...

  6. hibernate一对多和多对一配置

    public class Dept { private int deptId; private String deptName; // [一对多] 部门对应的多个员工 private Set<E ...

  7. Hibernate一对多、多对一的关系表达

    一.关系表达: 1.一对多.多对一表的关系: 学生表: 班级表: 在学生表中,学生的学号是主键.在班级表中,班级号是主键,因此,学生表的外键是classno.因此,班级对应学生是一对多,学生对应班级是 ...

  8. Hibernate 一对多,多对多,多对一检索策略

    一.概述 我们先来谈谈检索数据时的两个问题: 1.不浪费内存   2.更好的检索效率 以上说的问题都是我们想要避免的,接下来就引出了我们要讨论的话题---------------hibernate检索 ...

  9. Hibernate—— 一对多 和 多对多关联关系映射(xml和注解)总结(转载)

    One to Many 映射关系 多对一单向外键关联(XML/Annotation) 一对多单向外键关联(XML/Annotation) 懒加载和积极加载 一对多双向外键关联(XML/Annotati ...

  10. JPA的一对多,多对多用法

    一.@OneToOne关系映射 JPA使用@OneToOne来标注一对一的关系. 实体 People :用户. 实体 Address:家庭住址. People 和 Address 是一对一的关系. 这 ...

随机推荐

  1. 各浏览器对 window.open() 的支持

    原文地址

  2. 学习正则有感by魔芋(命名问题)

    魔芋: 事实上,我是反感一些特殊的名词.一些名词看上去就让人感觉到抗拒. 关于一个概念用不同的名词来定义,简直是太糟糕了. 举个例子: 匹配一个后面带有exp2的exp1的正则. 写法: exp1(? ...

  3. 面试中注意3个javascript的问题

    JavaScript 是所有现代浏览器的官方语言.因此,各种语言的开发者面试中都会遇到 JavaScript 问题. 本文不讲最新的 JavaScript 库,通用开发实践,或任何新的 ES6 函数. ...

  4. pat 1037

    如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.”现在,给定 ...

  5. 解决Failed with error: unable to access 'https://git.coding.net/chenmi1234/lianpos.git/': Couldn't resolve host 'git.coding.net'

    代码改变世界 github push 出现问题 Failed with error: unable to access 'https://git.coding.net/chenmi1234/lianp ...

  6. 皮尔逊相关系数的计算(python代码版)

    from math import sqrt def multipl(a,b): sumofab=0.0 for i in range(len(a)): temp=a[i]*b[i] sumofab+= ...

  7. 【bzoj3251】树上三角形 朴素LCA+暴力

    题目描述 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边长构成一个三角形.同时还支持单点修改. 输入 第一行两个整数n.q表示树的点数和操 ...

  8. centos中代理的设置

    最近在校园网中使用一个centos的主机,链接网络是需要代理的,如果是windows主机在Internet选项里设置一下就可以,可是在linux这个任何配置都要更改配置文件的系统里我还真是纠结了好大一 ...

  9. ECMA-262 Extractions

    For the purpose of this article, ECMA-262 refers to ECMAScript® 2017 Language Specification. ECMAScr ...

  10. Spring之BeanFactory与ApplicationConText区别

    使用BeanFactory从xml配置文件加载bean: import org.springframework.beans.factory.xml.XmlBeanFactory; import org ...