gpt4 book ai didi

java - JPA/hibernate : How to pass value in @where clause

转载 作者:行者123 更新时间:2023-11-29 05:36:33 26 4
gpt4 key购买 nike

我想知道是否可以使用 JPA 注释配置动态 @where 子句。假设我有两个类之间的关系 - 公司(父级)和调用(子级)。

如果有这样的Annotation声明(伪代码)。

@ManyToOne
@JoinColumn(name = "ID_MEN_PRE", referencedColumnName = "ID_MEN"
@Where(clause="invoice_month=:month")
private Testinvoices invoice;

我现在想做的是在 where 子句中传递“月”值。结果应仅返回给定日期的 Testinvoices。

有什么办法吗?

最佳答案

不可以,但是过滤器 - 见下文 - 可以参数化。

但是在我看来,您似乎在尝试建立关系模型,而实际上查询是更好的解决方案。

或者,在数据库级别创建按日期过滤的 View ,并将发票映射到该 View 而不是表格。

17.1。 hibernate 过滤器

Hibernate3 has the ability to pre-define filter criteria and attach those filters at both a class level and a collection level. A filter criteria allows you to define a restriction clause similar to the existing "where" attribute available on the class and various collection elements. These filter conditions, however, can be parameterized. The application can then decide at runtime whether certain filters should be enabled and what their parameter values should be. Filters can be used like database views, but they are parameterized inside the application.

关于java - JPA/hibernate : How to pass value in @where clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19377467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com