gpt4 book ai didi

java - 在控制台和namedQuery中执行查询会得到不同的结果

转载 作者:行者123 更新时间:2023-11-30 05:27:09 25 4
gpt4 key购买 nike

在我的 Java Web 应用程序中,我需要通过 customerNumber 从名为 VwDepositsInfo 的 View 查询存款列表。

当我执行查询时:

select * from VW_DEPOSIT_INFO v where v.CUSTOMER_NUMBER=:customerNo

在数据库控制台中,我的 resultList 大小为 2,并且具有如下内容:

1-{depositTypeDesc="shortTerm"} {depositTypeCode="850"}

2-{depositTypeDesc="longTerm"} {depositTypeCode="2"}

但是当我测试包含namedQuery的代码时:

    @NamedQuery(
name = "inquireAccountByCustomerNumber",
query = "select c from VWDepositInfo c where c.customerNumber=:customerNo"
)

我得到一个大小为 2 的 resultList,但两者相同,如下所示:

1-{depositTypeDesc="shortTerm"} {depositTypeCode="850"}

2-{depositTypeDesc="shortTerm"} {depositTypeCode="850"}

当我通过定义结果类使其成为 nativeQuery 时:

Query query = entityManager.createNativeQuery("select * from VW_DEPOSIT_INFO v where v.CUSTOMER_NUMBER=:customerNo", VWDepositInfo.class);

我再次得到错误的结果。

最后我在没有定义结果类的情况下尝试了nativeQuery:

Query query = entityManager.createNativeQuery("select * from VW_DEPOSIT_INFO v where v.CUSTOMER_NUMBER=:customerNo");    

结果正如我预期的那样。

这是我的 VwDepositsInfo.class:

@Entity
@Table(name = "VW_DEPOSIT_INFO")
@Audited(withModifiedFlag = false)
@NamedQueries(
{@NamedQuery(
name = "inquireAccountByCustomerNumber",
query = "select c from VWDepositInfo c where c.customerNumber=:customerNo"
)
}
)
public class VWDepositInfo implements Serializable {

@Id
@Column(name = "CUSTOMER_NUMBER")
private Long customerNumber;

@Column(name = "BRANCH_CODE")
private Long branchCode;

@Column(name = "DEPOSIT_TYPE_CODE")
private Long depositTypeCode;

@Column(name = "DEPOSIT_SERIAL")
private Long depositSerial;

@Column(name = "DEPOSIT_TYPE_DESC")
private String depositTypeDesc;

@Column(name = "CURRENCY_TYPE_DESC")
private String currencyTypeDesc;

@Column(name = "DEPOSIT_OPEN_DATE")
private Date depositOpenDate;

有谁知道为什么会这样???

最佳答案

大众 = 查看?您可能需要指定主 key

使用@id作为唯一字段:)

对于唯一的行,您可能需要多个带有 @id 的字段。

例如 DEPOSIT_TYPE_CODE 和 customerNumber

关于java - 在控制台和namedQuery中执行查询会得到不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58318812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com