[英]Return List of entity instead of List of object
Eclipse / Java
我有一種執行數據庫查詢的方法。
myBean:
List<Composicao> itemProdutoLista = compPrecoServico.buscar(Composicao.nomeQuery);
nomeQuery是:
@NamedQuery(name = "nomeQuery", query= " SELECT composicao.valortotal,composicao.id FROM Composicao composicao
查詢-javax.persistence.query
public List<T> buscar(String nomeQuery) {
Query query = entityManager.createNamedQuery(nomeQuery);
return query.getResultList();
}
我的返回列表公交車讓我知道: Object elementData
如何在返回的buscar方法中獲取Entity Composicao elementdata? 代替對象elementData
我給了您要在上一個問題中使用的查詢:
SELECT composicao FROM Composicao composicao
您是否不了解選擇實體的兩個字段,就像您在查詢中所做的那樣
SELECT composicao.valortotal,composicao.id FROM Composicao composicao
^-- first field ^-- second field
不返回Composicao對象,僅返回您選擇的兩個字段: valortotal
和id
?
您明確地要求JPA 僅返回valortotal
和id
。 為什么要返回所有其他字段並創建一個Composicao對象? 您需要所有字段,而不僅僅是valortotal和id。 因此查詢為(為防萬一,我將第三次重復該查詢):
SELECT composicao FROM Composicao composicao
假設您正在談論諸如JPA之類的東西。
將一個構造函數放在您的實體(除了空/默認構造函數之外)上,以接受您的每個查詢參數。
@Entity
public class Jedi
@Id private int id;
private String name;
//required by the standard
public Jedi(){}
public Jedi(int id, String name) {
this.id = id;
this.name = name;
}
//...
}
然后你的查詢
select NEW org.starwars.Jedi(j.id,j.name) from Jedi j where name.endsWith('Sky Walker')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.