Tom*_*nda 3 java spring hibernate jpa jpql
我有两个有关系的实体(休眠)。当我通过 JPA Repository 获取实体时,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
}
Run Code Online (Sandbox Code Playgroud)
药剂:
@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
}
Run Code Online (Sandbox Code Playgroud)
我从自动装配接口 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);
}
Run Code Online (Sandbox Code Playgroud)
两种方法findByNameQuery
都findByName
可以进行多重选择
改变
@OneToMany(mappedBy = "user", fetch = FetchType.EAGER)
private List<Medicament> medicaments;
Run Code Online (Sandbox Code Playgroud)
到
@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
private List<Medicament> medicaments;
Run Code Online (Sandbox Code Playgroud)
或者根本不指定 FetchType。@OneToMany
和 的默认值@ManyToMany
是LAZY
和EAGER
@OneToOne
归档时间: |
|
查看次数: |
10092 次 |
最近记录: |