gpt4 book ai didi

java - Spring Data JPA/Hibernate - @Repository 中的 findByY(String y) 方法,其中 Y 可通过对象 X 访问

转载 作者:行者123 更新时间:2023-12-02 02:08:03 27 4
gpt4 key购买 nike

我有一个 UserRepository:

@Repository
public interface UserRepository extends JpaRepository<User, Long>
{
}

其中用户:

@Entity
@Table(name = 'user')
public class User
{
@Id
private Long id;

@OneToOne(mappedBy = "owner", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private UserDetails userDetails;
}

和用户详细信息:

@Entity
@Table(name = 'user_details')
public class UserDetails
{
@Id
private Long id;

@OneToOne(fetch = FetchType.LAZY)
@MapsId
private User owner;

private String name;
}

排除包、导入、getter 和 setter,以获得更清晰的代码。

<小时/>

现在,我如何通过姓名查找用户?将其添加到 UserRepository 接口(interface)将不起作用:

List<User> findByName(String name);

因为它抛出:

No property name found for type User

我正在寻找这样的东西:

List<User> findByNameOfUserDetails(String name);

最佳答案

请查看 Spring Data JPA 文档 here .

您需要类似findByUserDetailsName(String name)的内容。要解决这种歧义,您可以在方法名称中使用 _ 来手动定义遍历点。因此我们的方法名称将是 findByUserDetails_Name(String name)

关于java - Spring Data JPA/Hibernate - @Repository 中的 findByY(String y) 方法,其中 Y 可通过对象 X 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50455562/

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