@Entity
public class A{
//some properties
}
@Entity
public class B{
//Some properties
}
我想使用JPA从两个表中获取选定的列,我知道如何通过存储库和控制器来获取单个Entity表数据。
存储库:
public interface extends JPARepository<A, Long>{
List<A> findAll();}
控制器:
public class class_name{
@AutoWired
private JPARepository repo;
@RequestMapping("/data")
public List<A> getData(){
return repo.findAll();
}
}
以上代码是获取单个表数据。现在,我想从两个表中获取选定的列。
Note: A, B Entities have mappings
答案 0 :(得分:3)
您可以做的是在存储库中的一种方法上使用@Query批注,并执行以下操作:
public Name {
String firstName;
String telephone;
public Name(String firstName,String telephon) {
//initialize fields
}
}
@Query(select new dummy.Name(u.name,c.telephone) from User u join fetch u.contact c where u.externalId= ?1 )
public Name getName(String externalId){}
您可以轻松返回List而不是使用构造函数查询,但是我发现这种方式更简洁。