如何使用EntityManager调用java存储过程?
我正在尝试调用JavaSP,它具有类似select查询的功能如何使用EntityManager调用java存储过程?,java,entitymanager,java-stored-procedures,Java,Entitymanager,Java Stored Procedures,我正在尝试调用JavaSP,它具有类似select查询的功能 Select a.name, b.age from tablea a, tableb b where a.emp=b.emp; 我不确定如何为此创建实体类以及如何调用 我做过类似的编码,在JavaSP中,它只接受一个输入,而select查询只涉及一个表 请找到相同的演示代码 实体类 @NamedStoredProcedureQuery (name="test", procedureName="GETALLOP
Select a.name, b.age from tablea a, tableb b where a.emp=b.emp;
我不确定如何为此创建实体类以及如何调用
我做过类似的编码,在JavaSP中,它只接受一个输入,而select查询只涉及一个表
请找到相同的演示代码
实体类
@NamedStoredProcedureQuery
(name="test",
procedureName="GETALLOP",
resultClasses=AfltModel.class,
parameters={
@StoredProcedureParameter(mode = ParameterMode.IN, name = "someinput", type = Integer.class),
@StoredProcedureParameter(mode = ParameterMode.OUT, name = "OUT_RETURN_CODE", type = Integer.class),
@StoredProcedureParameter(mode = ParameterMode.OUT, name = "OUT_RETURN_MESSAGE", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.OUT, name = "OUT_MESSAGE_SOURCE", type = String.class)
})
@Entity
@Data
public class AfltModel {
@Id
@Column(name="FUTR.CORP_CUST_ID")
int corpcustid;
@Column(name="FUTR.AFLT_CUST_ID")
String afltcustid;
}
执行类
@Component
public class ServiceClass {
@Autowired
EntityManager entityManager;
public List<List<AfltAcctModel>> getdata(List<Integer> inputList) {
List<List<AfltAcctModel>> list = inputList.stream()
.map(id -> entityManager
.createNamedStoredProcedureQuery("test").setParameter("IN_ACCT_ID", id)
.getResultList())
.collect(Collectors.toList());
return list;
}
}
@组件
公共类服务类{
@自动连线
实体管理器实体管理器;
公共列表getdata(列表输入列表){
List=inputList.stream()
.map(id->entityManager
.createNamedStoredProcedureQuery(“测试”).setParameter(“在账户ID中,ID”)
.getResultList())
.collect(Collectors.toList());
退货清单;
}
}
如果我们必须使用entitymanger调用java sp,并且sp不接受任何输入,并且如上所述有多个表,请告诉我如何实现相同的结果。请看这里。它们解释了它是如何工作的以及如何调用存储过程。这里也有一个例子,我理解调用部分,但这里的主要问题是“如果java sp select查询涉及多个表,我该如何创建实体类,正如我在问题中提到的那样”