我试图在一个存储库中访问两个模型,并通过加入它们来获取数据。有人可以在Spring Boot中显示一个存储库中访问两个模型的示例吗?
答案 0 :(得分:0)
如果您需要ModelA中的x字段和结果集中ModelB中的y字段,则不能在一个存储库中直接使用两个模型。
您必须创建一个不同的模型ModelC,其中仅包含ModelA和ModelB所需的字段。在ModelC中使用其字段创建构造函数。
在您的存储库中,您可以调用此构造函数以从ModelA和ModelB获取连接数据。
示例:
@Entity
public class ModelA{
Integer i;
String aaa;
String bbb;
String ccc;
//getters and setters
}
@Entity
public class ModelB{
Integer j;
String ddd;
String eee;
String fff;
//getters and setters
}
@Entity
public class ModelC{
String aaa; //from modelA
String bbbb;
String ddd; //from modelB
public (String a,String b,String d){
this.aaa=a;
this.bbb=b;
this.ddd=d;
}
//getters and setters
}
import yourpackage.ModelC
@Repository
public interface ModelARepository extends JpaRepository<ModelA, Integer> {
@Query("select new ModelC(a.aaa,b.ddd,b.eee) from ModelA a, ModelB b where a.aaa = b.bbb and a.aaa=:x [your query...so on]")
public List<ModelC> findEntities(@Param("x") String x);
}