gpt4 book ai didi

java - 按字段生成 Spring Data JPA 查询

转载 作者:搜寻专家 更新时间:2023-11-01 03:00:54 25 4
gpt4 key购买 nike

我在 ProjectRepository 中有一个看起来像这样的方法:

findByUserID(int userID);

这将列出引用特定用户的所有项目。由于其他要求,我现在需要从项目中引用用户,而不仅仅是用户 ID,如下所示:

@ManyToOne
@JoinColumn(name = "userID", referencedColumnName = "userID")
private User user;

过去只是:

int userID;

所以我将方法替换为:

findByUser(User user);

但这需要额外调用数据库来获取给定用户 ID 的用户对象。有没有办法在我的新类(class)中使用第一种方法?如果我只保留第一种方法,我会得到一个

org.springframework.data.mapping.PropertyReferenceException: No property ID found for type User! Traversed path: Project.user.

这是否可以在不编写自定义查询的情况下实现?

最佳答案

假设 User 类包含定义为:

public class User {
private int userId;

public User(int userId) {
this.userId = userId;
}
//getters setters ommitted
}

并且 Project 类中有一个 User 对象,如下所示:

public class Project {
private User user;

public Project() {
}
//rest ommitted
}

根据文档,它应该能够在存储库中编写自定义查询,通过编写访问嵌套属性,如 project.user.userId

findByUserUserId(int userId);

或者至少这是我从阅读文档中了解到的 here

关于java - 按字段生成 Spring Data JPA 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34739437/

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