[RESOLVIDO]Dúvida hibernate

3 respostas
evertonsilvagomesjav

Pessoal pq nesse caso nao precisa utilizar join pra trazer os objetos que eu tenho dentro do meu objeto Pedido. Por exemplo o objeto Produto ja ta vindo sem eu utilizar join, pq?

@NamedQuery(name="buscaPedidosPendentesOuComErros", query="Select pedido from Pedido pedido " +					
			" where pedido.status = 0 or pedido.status = 2")
@Entity
@Table(name = "MOBILE.RG_PEDIDO")
public class Pedido {
	
	@Id
	@Column(name = "CD_PEDIDO")
	@SequenceGenerator(name="SQ_RG_PEDIDO_GENERATOR", sequenceName="MOBILE.SQ_RG_PEDIDO")
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SQ_RG_PEDIDO_GENERATOR")
	private Integer cdPedido;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_INICIAL")
	private Date dtInicial;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_FINAL")
	private Date dtFinal;
	
	@JoinColumn(name = "CD_PRODUTO", referencedColumnName = "CD_PRODUTO")
	@ManyToOne(cascade=CascadeType.PERSIST)
	private Produto produto;
	
	@JoinColumn(name = "CD_INTERFACE", referencedColumnName = "CD_INTERFACE")
	@ManyToOne(cascade=CascadeType.PERSIST)
	private Interface inter;		
	
	@LazyCollection(value = LazyCollectionOption.FALSE) 
	@OneToMany(mappedBy = "pedido", cascade = {CascadeType.ALL, CascadeType.REFRESH}) 
	private List<PedidoTipoPlano> pedidoTipoPlano;
	
	@JoinColumn(name = "CD_MOTIVO_FECHAMENTO", referencedColumnName = "CD_MOTIVO_FECHAMENTO")
	@ManyToOne(cascade=CascadeType.PERSIST)
	private MotivoFechamento motivoFechamento;
	
	@JoinColumn(name = "CD_ERRO", referencedColumnName = "CD_ERRO")
	@ManyToOne(cascade=CascadeType.PERSIST)
	private Erro erro;		
	
	@LazyCollection(value = LazyCollectionOption.FALSE) 
	@OneToMany(mappedBy = "pedido", cascade = {CascadeType.ALL, CascadeType.REFRESH}) 
	private List<PedidoRegional> pedidoRegional;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_PEDIDO")
	private Date dtPedido;
	
	@Column(name = "IN_STATUS")
	private Integer status;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_PROCESSAMENTO")
	private Date dtProcessamento;
	
	@Column(name = "DS_RESULTADO")
	private String dsResultado;
	
	@Column(name = "NM_ARQUIVO_DOWNLOAD")
	private String arquivoDownload;

3 Respostas

D

Por padrão, os objetos provenientes de relação ManyToOne são carregados juntos com o objeto. Para que isso não ocorra, basta colocar fetch=FetchType.LAZY na sua anotação @ManyToOne .

evertonsilvagomesjav

Pô Diego valeu cara!

D

Everton, de nada cara. Coloca resolvido no tópico, quem sabe pode ajudar outra pessoa.

Criado 23 de março de 2012
Ultima resposta 23 de mar. de 2012
Respostas 3
Participantes 2