java调用存储过程时返回相同的记录
我有一个mysql数据库(我以后也需要在MSSQL上运行它),带有一个名为aa_acme_Consumes的存储过程,它接受一个序列号参数。我可以在mysql中调用它,如下所示:
call aa_acme_consumables("12345");
我将返回以下记录:
Serial_No | partID | Qty | Description
12345 | a123 | 10 | Widget One
12345 | b456 | 3 | Widget Two
充分披露:在我的多次尝试中,我可能会混淆不同解决方案的部分内容。以下是我到目前为止的情况
我的@Entity类如下所示:
@Entity
@Data
public class Consumable implements Serializable {
@Id
@Column(name = "Serial_No")
private String serialNo;
@Column(name = "partID")
private String partID;
@Column(name = "Qty")
private int quantity;
@Column(name = "Description")
private String desc;
}
我的存储库类如下所示“
@Repository
public interface ConsumableRepo extends JpaRepository<Consumable, Integer>, ConsumableRepoCust { }
我的自定义存储库类如下所示:
public interface ConsumableRepoCust {
public List<Consumable> getAllConsumables(String serialNum);
}
我的存储库实现如下所示:
public class ConsumableRepoImpl {
@PersistenceContext
EntityManager em;
public List<Consumable> getAllConsumables(String serialNum) throws SQLException {
StoredProcedureQuery query = em.createStoredProcedureQuery("xx_bds_Consumable", Consumable.class);
query.registerStoredProcedureParameter("serialNum", String.class, ParameterMode.IN);
query.setParameter("serialNum", serialNum);
query.execute();
List<Consumable> consumableList = query.getResultList();
for (Consumable c : consumableList ) {
System.out.println("Description : " + c.getDesc() );
}
return consumableList ;
}
}
我希望能收到以下文件:
========== ABOUT TO RUN STORED PROC ==========
Hibernate: {call aa_acme_consumables(?)}
Description : Widget One
Description : Widget Two
所以我的问题是: **我为什么要退货**
========== ABOUT TO RUN STORED PROC ==========
Hibernate: {call aa_acme_consumables(?)}
Description : Widget One
Description : Widget One
我希望从返回的第二条记录(小部件2)中得到描述,就像我从mysql调用存储的进程一样,但我得到的是小部件1两次。这让我头疼
共 (0) 个答案