有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案