如何使用JPA

时间:2016-10-11 16:35:06

标签: java jpa annotations

我正在从旧数据库中检索数据,因此无法完全控制架构。

我经常需要在单独的列中检查静态值以删除错误匹配。

create table mySource (
id int,
...
)

create table aRelation (
srcId int,
myFK int,
relationLimit varchar
)

create table aTarget (
id int,
...
myFK int,
aLimit varchar,
...
)

上面的“relationLimit”和/或“aLimit”必须与静态值匹配。

我只能找到标准注释:

@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
    name = "aRelation",
    joinColumns = {
       @JoinColumn(name = "srcId") },
       @inverseJoinColumns = {
           @JoinColumn(name = "myFK", referencedColumnName = "myFK")
    })
private List<ATarget> targets;

但我找不到任何方法来注释要求

aLimit = "Something"
relationLimit="SomethingElse"

如果在文档中这是显而易见的,请告诉我如何以及在何处阅读它。

1 个答案:

答案 0 :(得分:2)

如果您使用Hibernate,您可以在实体上尝试@Filter注释。

@Filter(name="betweenLength", condition="aLimit = 'Something' and relationLimit='SomethingElse'")

有关此主题的更多信息,请参阅here