我在ProjectRepository中有一个看起来像这样的方法:
java.util.List
这将列出引用特定用户的所有项目。由于其他要求,我现在需要从Project中引用User,而不仅仅是userID,如下所示:
findByUserID(int userID);
以前只是:
@ManyToOne
@JoinColumn(name = "userID", referencedColumnName = "userID")
private User user;
所以我用以下方法替换了方法:
int userID;
但是这需要额外调用数据库来获取给定userID的User对象。有没有办法在我的新班级中使用第一种方法?如果我保留第一种方法,我会得到一个
findByUser(User user);
这可以不编写自定义查询吗?
答案 0 :(得分:3)
假设User类包含定义为:
python-yaml
并且Project类中有一个User对象,如下所示:
public class User {
private int userId;
public User(int userId) {
this.userId = userId;
}
//getters setters ommitted
}
根据文档,它应该能够在存储库中编写一个自定义查询,通过编写
访问嵌套属性,如project.user.userIdpublic class Project {
private User user;
public Project() {
}
//rest ommitted
}
或至少是我从阅读文档中了解到的here
答案 1 :(得分:0)
尝试使用@PrimaryKeyJoinColumn注释。