首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想使用@JoinColumns从不同的表中获取数据-如何创建一个可以传递参数的条件?

我想使用@JoinColumns从不同的表中获取数据-如何创建一个可以传递参数的条件?
EN

Stack Overflow用户
提问于 2021-10-18 19:21:53
回答 2查看 72关注 0票数 1

让我们假设我有如下代码:

代码语言:javascript
运行
复制
Entity
public class Order {
    private Integer exampleNumber;

    // ...
}

@Entity
public class User {  
   private List<Order> orders;
   private Integer exampleNumber;

   @OneToMany(fetch = FetchType.LAZY)
   @JoinColumns({@JoinColumn(name = "user_nr", referencedColumnName = "id")})
   public List<Order> getOrders() {
       return this.orders;
   }

   public Integer getExampleNumber() {
        return this.exampleNumber;
   };

   // ...
}

我只想在我的方法getOrders()中获得那些User.getExampleNumber() = Order.getExampleNumber的订单。如何以最简单的方式将条件添加到此方法getOrders()?是否可以在@Filter,@WhereJoinTable中传递参数,或者我是否需要使用其他参数?

EN

回答 2

Stack Overflow用户

发布于 2021-10-18 19:34:45

这在JPA中是不可能传递值的

但是你可以使用

代码语言:javascript
运行
复制
@Where

喜欢

代码语言:javascript
运行
复制
@Where(clause="example_nr=...")

另外,建议的方法是使用Hibernate标准。

代码语言:javascript
运行
复制
Criteria criteria = session.createCriteria(User.class);
...
票数 2
EN

Stack Overflow用户

发布于 2021-10-26 12:45:06

在用户模型中放置以下代码

代码语言:javascript
运行
复制
    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="post")
    private List<Order> orders;

在顺序表中,调色板中的代码

代码语言:javascript
运行
复制
    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "user_id", nullable = false)
    @JsonIgnore
    private User user;

有了这个,您就可以在获取用户详细信息时获取与用户相关的所有订单

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69621472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档