加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 右边加入jpa

发布时间:2020-12-15 02:08:26 所属栏目:Java 来源:网络整理
导读:NewRequest. java @Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Basic(optional = false)@Column(nullable = false)private Long id;@Size(max = 2147483647)@Column(length = 2147483647)private String data;@JoinColumn(name = "buyer_id",re
NewRequest. java

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(nullable = false)
private Long id;

@Size(max = 2147483647)
@Column(length = 2147483647)
private String data;

@JoinColumn(name = "buyer_id",referencedColumnName = "id")
@ManyToOne(fetch = FetchType.LAZY)
private Buyer buyer_id;

@OneToMany(mappedBy = "newrequest_id",fetch = FetchType.LAZY)
private Collection<Mapping> mappingCollection;

Mapping.java

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(nullable = false)
private Long id;

@JoinColumn(name = "seller_id",referencedColumnName = "id")
@ManyToOne(fetch = FetchType.LAZY)
private Seller seller_id;

@JoinColumn(name = "newrequest_id",referencedColumnName = "id")
@ManyToOne(fetch = FetchType.LAZY)
private NewRequest newrequest_id;

可以说,我有这样的记录.

new_request:

id(PK) |  data  | buyer_id(FK)
------------------------------
1      |  data1 |   1
2      |  data2 |   1
3      |  data3 |   2

映射:

id(PK) | newrequest_id(FK) | seller_id(FK)
------------------------------------------
1      |        1          |    1

注意:考虑买卖双方存在两个不同的表.

我想要所有与卖家映射的new_request.所以,预期产出:

id   | data  | buyer_id | seller_id
------------------------------------
1    | data1 |  1       |    1
2    | data2 |  1       |
3    | data3 |  2       |

我在JPA中尝试了以下查询:

select n.id,n.data,n.buyer_id,m.seller_id from Mapping m left join m.newrequest_id n

它只提供一个数据(输出行为1).

我使用本机查询通过右连接得到了我的结果.但我想用JPA查询来实现它.

解决方法

您只需要在查询中切换实体类(在大多数情况下,右外连接只是左外连接的反转):

select n.id,m.seller_id 
  from NewRequest n left join n.mappingCollection m

正如我在上面的评论中已经建议的那样:您应该从属性中删除_id后缀,因为这样可以更好地阅读和理解.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读