gpt4 book ai didi

java - 没有关系实体的 JPA 存储库选择

转载 作者:行者123 更新时间:2023-12-05 02:21:16 31 4
gpt4 key购买 nike

我有两个实体( hibernate )有关系。当我通过 JPA Reposiotory 获得实体时,hibernate 会为两个实体“选择”。我如何通过一次选择获得实体(此时我不需要第二个实体)。

抱歉我的英语和技术语言 - 我是初学者。

编辑

用户:

@Entity
public class User {

@Id
@GeneratedValue
private int id;

private String name;

@OneToMany(mappedBy = "user", fetch = FetchType.EAGER)
private List<Medicament> medicaments;

//and others and getters and setters
}

药剂:

@Entity
public class Medicament {

@Id
@GeneratedValue
private int id;

private String name;

@ManyToOne
@JoinColumn(name = "user_id")
private User user;

//and others and getters and setters
}

我从 Autowiring 接口(interface) UserRepository 调用方法:

public interface UserRepository extends JpaRepository<User, Integer>{

@Query("select u from User u where name = :name")
User findByNameQuery(@Param("name") String name);

User findByName(String name);
}

方法 findByNameQueryfindByName 都进行多选

最佳答案

改变

@OneToMany(mappedBy = "user", fetch = FetchType.EAGER)
private List<Medicament> medicaments;

@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
private List<Medicament> medicaments;

或者根本不指定 FetchType。 @OneToMany@ManyToMany 的默认值是LAZY@OneToOne 的默认值是EAGER

关于java - 没有关系实体的 JPA 存储库选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35625368/

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