2014-02-14 5 views
0

이클립스/자바반환 개체 대신 목록 개체

나는 데이터베이스 쿼리를 수행하는 방법이 있습니다.

에서 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(); 
} 

내 반환 목록 buscar 나에게 그것을 얻을 : object입니다으로부터 elementData

enter image description here

어떻게 반환 buscar 방법에 엔티티 Composicao의으로부터 elementData을받을 수 있나요? 대신 개체의으로부터 elementData

내가 당신에게 당신의 이전 질문에서 사용할 수있는 쿼리 준
+0

@JB 이미 지의 내가 확실히 이해하지 – Al2x

+0

자바의 ArrayList의 하위 항목을 읽는 방법에 대한 마지막 포스트에 대한 원하는 됐죠 'Composicao' 타입의 객체를 포함하므로 코드의 일부분이 올바르지 않습니까? – Smutje

+0

내 printscreen을 참조하십시오. 그것은 나에게 Object elementData를 가져오고 엔티티 elementData가 필요합니다. – Al2x

답변

3

:

SELECT composicao FROM Composicao composicao 

당신이 이해하지 마십시오을 당신이 쿼리

에서하고있는 것처럼 기업의 두 개의 필드를 선택
SELECT composicao.valortotal,composicao.id FROM Composicao composicao 
        ^-- first field  ^-- second field  

Composicao 객체를 반환하지 않고 선택한 두 필드 (valortotalid) 만 반환합니까?

valortotalid 만 반환하도록 명시 적으로 JPA에 요청하고 있습니다. 왜 다른 모든 필드를 반환하고 Composicao 객체를 만들겠습니까? 당신은 모든 분야를 원해요. 쿼리는 다음과 같습니다.

SELECT composicao FROM Composicao composicao 
+0

우리는 그 오래된 질문으로 돌아갑니다. id에 대해 itemProdutoLista.get (0) .get (0)을 valorTotal 및 itemProdutoLista.get (0) .get (1)을 검색해야합니다. 나는 그것이 존재하지 않는다는 것을 안다. (x) .get (y)하지만 내가 필요한 것은 니제트 – Al2x

+0

'composicao firstComposicao = itemProdutoLista.get (0); int valortotal = firstComposicao.getValortotal(); 긴 ID = firstComposicao.getId();'. 'List '를 돌려받는 경우,리스트의 모든 요소는 Composica입니다. 그게 분명하지 않니? –

+0

이미 해봤지만 다음과 같은 결과가 있습니다. java.math.BigDecimal을 br.com.getsao360.entidade.Composicao @ JB Nizet – Al2x

0

당신이 JPA와 비슷한 것을 말하는 것으로 가정합니다.

쿼리 인수를 모두 받아들이는 엔티티 (빈/기본 생성자 외에)에 생성자를 추가하십시오. `목록 itemProdutoLista` -

@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')