【发布时间】:2017-10-11 21:28:31
【问题描述】:
我正在尝试访问一个存储库中的两个模型并通过加入它们来获取数据。有人可以展示一个在 Spring Boot 中访问一个存储库中的两个模型的示例吗?
【问题讨论】:
-
你有没有尝试过这个?
-
首先你应该做一些研究。如果你不能自己做,你应该分享你的发现并询问它的可能性。
标签: spring spring-mvc spring-boot
我正在尝试访问一个存储库中的两个模型并通过加入它们来获取数据。有人可以展示一个在 Spring Boot 中访问一个存储库中的两个模型的示例吗?
【问题讨论】:
标签: spring spring-mvc spring-boot
如果您的结果集中需要来自 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);
}
【讨论】: