首页 文章 精选 留言 我的

精选列表

搜索[JPA],共1052篇文章
优秀的个人博客,低调大师

Jpa hibernate】一对多@OneToMany,多对一@ManyToOne的使用

项目中使用实体之间存在一对多@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; } 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

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册