我有一個遺留的表有很多列,我試圖限制休眠的列數。如果我只是從「from」子句運行到最後,它可以正常工作,加載每一列,但是當我添加「Select a.col1,a.col2 ...」等時,我得到一個對象數組而不是bean的實例。休眠選擇子句不起作用
我嘗試添加一個結果變壓器,但它似乎認爲第一列被命名爲「0」。我猜想在結果轉換器進入畫面時已經損壞了。我想知道,如果可能有一個案件不匹配,所以我把所有東西都變成了大寫,但這並沒有幫助。
UPDATE: 這裏的SQL:
Select a.SZ_ABND_NO, a.ASSET_VAL, a.FO_TYP, a.ASSET_ID, a.AGCY_RGN_CD, a.LIT_AGCY_CD, a.ASSET_TYP, a.SZ_AGCY_CD, a.SUB_OFC_ID, a.OFC_ID, a.CA_ID_AGCY, a.PROC_DIST from FlatAssetT a where a.ASSET_ID in (:assetList) order by a.ASSET_ID
的bean是巨大的。這12列是數百(是複數)。我會給出一個選定的代碼片段。
@Entity
@Table(name = "FLATASSET_T", schema="K702PRDR")
public class FlatAssetT {
@Column(name="ADPT_DT", nullable=false)
private Date ADPT_DT;
@Id
@Column(name="ASSET_ID", nullable=false)
private String ASSET_ID;
@Column(name="ASSET_ID_TYP", nullable=false)
private String ASSET_ID_TYP;
@Column(name="SZ_ABND_NO", nullable=false)
private String SZ_ABND_NO;
[etc.]
public String getSZ_ABND_NO() {
return SZ_ABND_NO;
}
public void setSZ_ABND_NO(String arg) {
this.SZ_ABND_NO=arg;
}
public String getASSET_ID() {
return ASSET_ID;
}
public void setASSET_ID(String arg) {
this.ASSET_ID=arg;
}
public Date getADPT_DT() {
return ADPT_DT;
}
public void setADPT_DT(Date arg) {
this.ADPT_DT=arg;
}
public String getASSET_ID_TYP() {
return ASSET_ID_TYP;
}
public void setASSET_ID_TYP(String arg) {
this.ASSET_ID_TYP=arg;
}
[etc.]
}
你可以幫助我們發佈你想要選擇的bean嗎?也許當前表的SQL創建?此外,不要忘記提及,如果你使用純粹的JPA或Hibernate API,它是HQL還是JPQL?使用hibernate標準API?它幫助我們嘗試和調試問題:) –
@André - 使用HQL。該表不是由休眠創建的。它是一個遺留表格。用字符串用戶輸入密鑰(asset_id)非常簡單。除了它存在以外,我對標準API一無所知。我聽說「預測」在這裏很有幫助,但我不知道如何。 – user1187719