<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "JPA...Duvida ao fazer createQuery...com join...."]]></title>
		<link>http://www.guj.com.br/posts/list/11.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "JPA...Duvida ao fazer createQuery...com join...."]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>JPA...Duvida ao fazer createQuery...com join....</title>
				<description><![CDATA[ <br /> <br /> <br /> Olá,<br /> <br /> umas duvidas pois estou acostumado a usar DAO ( fazendo sql) e estou convertendo um projeto<br /> para JPA usando Hibernate.<br /> <br /> <br /> Tenho no modelo o seguinte :<br /> <br /> NotaFiscal (1-1) Cliente<br /> NotaFiscal (1-N) NotaFiscalItem<br /> <br /> Tenho uma tela de consulta onde de como parametro o estado e tenho que retornar<br /> todas as notas fiscais , notas fiscais itens e clientes desse estado .<br /> <br /> <br /> Estou tentando fazer join com createQuery (JPA) mas não vai ?????<br /> <br /> Alguém teria algum exemplo pra sanar essa minha duvida ????<br /> <br /> Se alguem puder me ajudar agradeceria ????<br /> <br /> <br /> [code]<br /> <br /> -- to fazendo isso mas da erro <br /> -- e não sei se está certo <br /> <br /> select nota , item,cliente from notafiscal nota join nota.cliente as cliente join nota.notafiscalitem as item<br /> where cliente.estado="SP"<br /> [/code]<br /> <br /> [code]<br /> <br /> public static void main(String[] args) {<br /> 		<br /> 		//org.apache.log4j.BasicConfigurator.configure();<br /> 		EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPA9");<br />         EntityManager em = emf.createEntityManager();<br /> 		<br /> 		<br /> 		System.out.println("Inico ...testCreateQuery()");<br /> <br /> 		List listas = em.createQuery("select nota from NotaFiscal as nota where nota.id=3").getResultList();<br /> 					<br /> 		System.out.println("Size listas = "+listas.size());<br />         <br />         for (int i=0;i&lt;listas.size();i++){<br />         	NotaFiscal  rs = (NotaFiscal) listas.get(i);<br />         	if (i==0){<br />             	System.out.println("Nota  ID  ="+rs.getId());<br />             	System.out.println("Nome  ="+rs.getDescricao());<br /> 	      	    System.out.println("___________________________________________");<br />         		<br /> 	    		System.out.println("   Cliente ID ="+rs.getCliente().getId());<br /> 	    		System.out.println("   Cliente Nome = "+rs.getCliente().getNome());<br /> 	    		System.out.println("   Cliente Estado = "+rs.getCliente().getEstado());<br /> 	      	    System.out.println("___________________________________________");<br /> <br />         	}         	<br />         	<br />         	<br />         	for (NotaFiscalItem it :rs.getItenss()){<br />         		System.out.println("   Item ID ="+it.getId());<br />         		System.out.println("   Seq Item = "+it.getSeqItem());<br />         		System.out.println("   Qtde Item = "+it.getQtdeItem());<br />         		System.out.println("   Valor Item = "+it.getValor());<br />         	}<br />         	System.out.println("___________________________________________");<br />         	<br />         }<br /> <br /> 	}	<br /> <br /> [/code]<br /> <br /> [code]<br /> <br /> import java.util.ArrayList;<br /> import java.util.List;<br /> <br /> import javax.persistence.Column;<br /> import javax.persistence.Entity;<br /> import javax.persistence.GeneratedValue;<br /> import javax.persistence.Id;<br /> import javax.persistence.JoinColumn;<br /> import javax.persistence.OneToMany;<br /> import javax.persistence.OneToOne;<br /> import javax.persistence.Table;<br /> <br /> <br /> <br /> @Entity<br /> @Table(name="Nota_Fiscal")<br /> public class NotaFiscal {<br /> 	<br /> 	@Id<br /> 	@GeneratedValue<br /> 	@Column(name="ID_NOTA")<br /> 	private int id;<br /> 	@Column(name="descricao")<br /> 	private String descricao;<br /> 	@OneToMany(mappedBy= "notafiscal",cascade =javax.persistence.CascadeType.ALL)<br /> 	private List&gt;&lt;NotaFiscalItem&gt; itenss = new ArrayList&lt;NotaFiscalItem&gt;();<br /> <br /> 	@OneToOne<br /> 	@JoinColumn(name = "ID_CLIENTE")<br /> <br /> 	private Cliente cliente;<br /> 	public NotaFiscal(){<br /> 		<br /> 	}<br /> 	public int getId() {<br /> 		return id;<br /> 	}<br /> <br /> 	public void adicionaNotaFiscalItem(NotaFiscalItem item) {<br /> 		itenss.add(item);<br /> 	}<br /> 	public void setId(int id) {<br /> 		this.id = id;<br /> 	}<br /> <br /> <br /> 	<br /> 	<br /> 	public String getDescricao() {<br /> 		return descricao;<br /> 	}<br /> 	public void setDescricao(String descricao) {<br /> 		this.descricao = descricao;<br /> 	}<br /> 	public Cliente getCliente() {<br /> 		return cliente;<br /> 	}<br /> 	public void setCliente(Cliente cliente) {<br /> 		this.cliente = cliente;<br /> 	}<br /> 	public List&lt;NotaFiscalItem&gt; getItenss() {<br /> 		return itenss;<br /> 	}<br /> 	public void setItenss(List&lt;NotaFiscalItem&gt; itenss) {<br /> 		this.itenss = itenss;<br /> 	}<br /> 	<br /> <br /> [/code]<br /> <br /> [code]<br /> <br /> import java.util.ArrayList;<br /> import java.util.List;<br /> <br /> import javax.persistence.Column;<br /> import javax.persistence.Entity;<br /> import javax.persistence.GeneratedValue;<br /> import javax.persistence.Id;<br /> import javax.persistence.JoinColumn;<br /> import javax.persistence.OneToMany;<br /> import javax.persistence.OneToOne;<br /> import javax.persistence.Table;<br /> <br /> <br /> <br /> @Entity<br /> @Table(name="Nota_Fiscal")<br /> public class NotaFiscal {<br /> 	<br /> 	@Id<br /> 	@GeneratedValue<br /> 	@Column(name="ID_NOTA")<br /> 	private int id;<br /> 	@Column(name="descricao")<br /> 	private String descricao;<br /> 	@OneToMany(mappedBy= "notafiscal",cascade =javax.persistence.CascadeType.ALL)<br /> 	private List&lt;NotaFiscalItem&gt; itenss = new ArrayList&lt;NotaFiscalItem&gt;();<br /> <br /> 	@OneToOne<br /> 	@JoinColumn(name = "ID_CLIENTE")<br /> <br /> 	private Cliente cliente;<br /> 	public NotaFiscal(){<br /> 		<br /> 	}<br /> 	public int getId() {<br /> 		return id;<br /> 	}<br /> <br /> 	public void adicionaNotaFiscalItem(NotaFiscalItem item) {<br /> 		itenss.add(item);<br /> 	}<br /> 	public void setId(int id) {<br /> 		this.id = id;<br /> 	}<br /> <br /> <br /> 	<br /> 	<br /> 	public String getDescricao() {<br /> 		return descricao;<br /> 	}<br /> 	public void setDescricao(String descricao) {<br /> 		this.descricao = descricao;<br /> 	}<br /> 	public Cliente getCliente() {<br /> 		return cliente;<br /> 	}<br /> 	public void setCliente(Cliente cliente) {<br /> 		this.cliente = cliente;<br /> 	}<br /> 	public List&lt;NotaFiscalItem&gt; getItenss() {<br /> 		return itenss;<br /> 	}<br /> 	public void setItenss(List&lt;NotaFiscalItem&gt; itenss) {<br /> 		this.itenss = itenss;<br /> 	}<br /> 	<br /> 	<br /> }<br /> [/code]<br /> <br /> [code]<br /> <br /> package br.com.exemplojpa.modelo;<br /> <br /> import javax.persistence.Column;<br /> import javax.persistence.Entity;<br /> import javax.persistence.FetchType;<br /> import javax.persistence.GeneratedValue;<br /> import javax.persistence.Id;<br /> import javax.persistence.JoinColumn;<br /> import javax.persistence.ManyToOne;<br /> import javax.persistence.Table;<br /> <br /> @Entity<br /> @Table( name="Nota_Fiscal_Item")<br /> public class NotaFiscalItem {<br /> 	<br /> 	<br /> 	@Id<br /> 	@GeneratedValue<br /> 	@Column(name="id_item")<br />     private int id;<br /> 	<br /> 	@Column<br /> 	private int seqItem;<br /> 	<br /> 	@Column<br /> 	private int qtdeItem;<br /> <br />     private double valor;<br /> 	<br /> 	@ManyToOne(fetch = FetchType.EAGER)<br /> 	@JoinColumn (name = "FK_ID_NOTA")	<br /> 	private NotaFiscal notafiscal;<br /> <br /> 	public NotaFiscalItem(int xqtde){<br /> 		this.qtdeItem= xqtde;<br /> 	}<br /> 	<br />     public NotaFiscalItem( String nome){<br /> 		<br /> 	}<br />     <br />     public NotaFiscalItem(){<br /> 	<br /> 	}<br /> 	public int getId() {<br /> 		return id;<br /> 	}<br /> <br /> <br /> 	public void setId(int id) {<br /> 		this.id = id;<br /> 	}<br /> <br /> <br /> 	public int getSeqItem() {<br /> 		return seqItem;<br /> 	}<br /> <br /> <br /> 	public void setSeqItem(int seqItem) {<br /> 		this.seqItem = seqItem;<br /> 	}<br /> <br /> <br /> 	public int getQtdeItem() {<br /> 		return qtdeItem;<br /> 	}<br /> <br /> <br /> 	public void setQtdeItem(int qtdeItem) {<br /> 		this.qtdeItem = qtdeItem;<br /> 	}<br /> <br /> <br /> 	public NotaFiscal getNotafiscal() {<br /> 		return notafiscal;<br /> 	}<br /> <br /> <br /> 	public void setNotafiscal(NotaFiscal notafiscal) {<br /> 		this.notafiscal = notafiscal;<br /> 	}<br /> <br /> 	public double getValor() {<br /> 		return valor;<br /> 	}<br /> <br /> 	public void setValor(double valor) {<br /> 		this.valor = valor;<br /> 	}<br /> 	<br /> 	<br /> }<br /> <br /> <br /> [/code]<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/195458/981335/jpaduvida-ao-fazer-createquerycom-join
</guid>
				<link>http://www.guj.com.br/prepost/195458/981335/jpaduvida-ao-fazer-createquerycom-join
</link>
				<pubDate><![CDATA[Fri, 19 Dec 2008 09:54:38]]> GMT</pubDate>
				<author><![CDATA[ paribePJ]]></author>
			</item>
	</channel>
</rss>
