в моем веб-приложении java мне нужно запросить список депозитов из представления с именем VwDepositsInfo по customerNumber.
при выполнении моего запроса:
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"
)
, я получаю resultList с размером 2, но оба одинаковы, вот так:
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;
Кто-нибудьзнаете, почему это происходит ???