Galera,
De boa?
Feliz dia dos Profissionais em TI.
Bom, eu estou fazendo uma consulta utilizando o hibernate. So não sei como eu passo um relacionamento para esse consulta.
Olha só.
Eu tenho:
Classe Produto.
Classe Empresa.
Classe ProdutoEmpresa.
@Entity
public class Produto {
//Variáveis
@Id @GeneratedValue
private Long id;
private String nome;
private String preco;
Relacionamento com ProdutoEmpresa.
//Relacionamento com ProdutoEmpresa
@OneToMany(mappedBy = "produto",targetEntity= ProdutoEmpresa.class,
fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<ProdutoEmpresa> produtoEmpresa;
Tabela Empresa.
@Entity
public class Empresa {
//Variáveis
@Id @GeneratedValue
private Long id;
private String fantasia;
Relacionamento com ProdutoEmpresa.
//Relacionamento com ProdutoEmpresa
@OneToMany(mappedBy = "empresa",targetEntity= ProdutoEmpresa.class,
fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<ProdutoEmpresa> produtoEmpresa;
Classe ProdutoEmpresa.
@Entity
public class ProdutoEmpresa {
//Variáveis
@Id @GeneratedValue
private Long id;
private String quantidade_estoque;
private String preco;
private String ativo;
//Relacionamento com Produto
@ManyToOne
@JoinColumn(name="cod_produto")
private Produto produto;
//Relacionamento com Empresa
@ManyToOne
@JoinColumn(name="cod_empresa")
private Empresa empresa;
//Método set e get
Fiz os set e get de todo mundo.
O que eu preciso, um DAO que pesquise para mim o menor preço do produto.
Dessa forma, o que eu fiz.
Consulta com o Hiberante para Localizar a empresa que tem o menor preço
public List<ProdutoEmpresa> buscamenorpreco(Produto produto) {
return session.createCriteria(ProdutoEmpresa.class).add(Restrictions.eq("produto",produto))
.addOrder(Order.asc("preco")).list();
}
Minha dúvida e como eu passo aqui, o cod_produto para ele pesquisar. Coloquei conforme acima, não funcionou.
E fiz também o Controllador.
//Página do menor preço
@Get("/produto/menorpreco2")
public List<ProdutoEmpresa> menorpreco(Produto produto) {
return dao.buscamenorpreco(produto);
}
Como eu faço isso?
Só preciso saber como eu passo isso no Hibernate.
Valeu Galera!!!
Tinha esquecido, olha o erro.
br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.softsol.compresempre.modelo.Produto
