Pessoal
tenho a seguinte estrutura
Produto tem 1 tipo de Produto
Minha classe Produto está assim
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
@Column(name = "COD_PRODUTO", unique = true, nullable = false, precision = 5, scale = 0)
private Long codProduto;
@Column(name = "NOME_PRODUTO", nullable = false, length = 100)
private String nomeProduto;
@Column(name = "DESC_PRODUTO", nullable = true, length = 500)
private String descProduto;
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
@JoinColumn(name="COD_TIPO_PRODUTO", nullable = false)
private TipoProduto tipoProduto;
e minha classe Tipo Produto está assim
@Id
@Column(name = "COD_TIPO_PRODUTO", unique = true, nullable = false, precision = 5, scale = 0)
private Long codTipoProduto;
@Column(name = "NOME_TIPO_PRODUTO", nullable = false, length = 30)
private String nomeTipoProduto;
@OneToMany (mappedBy="tipoProduto",fetch= FetchType.LAZY)
@Cascade (org.hibernate.annotations.CascadeType.ALL)
private Set<Produto> produto;
Eu preciso fazer uma busca de um produto que tem um tipo X
como fazer pela criteria?
pelo nome do produto estou fazendo assim
session = HibernateUtil.getSession();
transaction = session.beginTransaction();
Criteria criteria = session.createCriteria(refClass);
criteria.add(Restrictions.ilike(Produto.NOME_PRODUTO, "%"+produto.getNomeProduto()+"%"));
}
mas preciso buscar pelo ID do tipo de Produto
fiz do mesmo jeito para o tipo de produto
criteria.add(Restrictions.eq(TipoProduto.COD_TIPO_PRODUTO, produto.getTipoProduto().getCodTipoProduto()));
Mas da erro pq fala que cod_tipo_produto não é uma propriedade de Produto
eu preciso de uma query feito por criteria assim:
select * from produto where cod_tipo_produto = ?
