@JoinFormula 和 @OneToMany 定义 - 糟糕的文档
Posted
技术标签:
【中文标题】@JoinFormula 和 @OneToMany 定义 - 糟糕的文档【英文标题】:@JoinFormula and @OneToMany definition - poor documentation 【发布时间】:2012-04-14 20:16:27 【问题描述】:我有两个关于@JoinFormula 和@OneToMany 注释的问题:
如何使用@JoinFormula
和@OneToMany
注释限制结果数?
如何定义表达式author = id
中的id
指的是Author.id
?
Author
@Id
private Long id;
@OneToMany
@JoinFormula(value = "SELECT a FROM Article a WHERE author = id AND schedule < CURRENT_TIMESTAMP()") // limit = 15
private List<Article> pastArticles;
像这样,即使我删除了子句的schedule <
部分,我仍然将过去的文章留空。
谢谢!
【问题讨论】:
2 不行,不知道 1 是否可行。使用 SQL 查询限制也许 1 是可能的。 至于我发现的限制:***.com/questions/7894931/… 【参考方案1】:答案 1:
@Size(max=10)
private List<Comment> commentList;
答案 2 :(只是这样的例子)
public class A
@Id
@GeneratedValue
private Integer id;
private String uuid;
...
其他类
public class B
@Id
@GeneratedValue
private Integer id;
private String uuidOfA;
@ManyToOne
@JoinColumnsOrFormulas(
@JoinColumnOrFormula(formula=@JoinFormula(value="(SELECT a.id FROM A a WHERE a.uuid = uuid)", referencedColumnName="id")),
@JoinColumnOrFormula(column = @JoinColumn("uuidOfA", referencedColumnName="uuid"))
)
private A a;
【讨论】:
一些解释会很好。我知道我可能太愚蠢了,但我不明白答案 2 中的注释是如何协同工作的【参考方案2】:最好使用@Where
注释来限制结果
【讨论】:
以上是关于@JoinFormula 和 @OneToMany 定义 - 糟糕的文档的主要内容,如果未能解决你的问题,请参考以下文章
如何正确映射@OneToMany 和@ManyToOne 关系,以便我可以保存和更新@OneToMany 端(有或没有@ManyToOne 端)
@OneToMany 和 @ElementCollection 之间的区别?