Olá a todos!
Estou com um problema que eu acredito ser até relativamente simples de se resovler. Mas ja tentei de tudo e não consigo mesmo assim. Tenho uma entidade chamada Regras, e dentre os atributos, um deles é uma Lista de objetos (outra entidade) com relacionamento Many to Many:
Vejam o trecho da entidade:
@Entity
@Table(name="regra")
public class Regra {
private String nome = new String();
private Boolean timeout;
@OneToOne(fetch = FetchType.EAGER, optional = true)
@JoinColumn(referencedColumnName = "id", name = "caminho", nullable = true)
private Caminho caminho;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<CanalVendas> canalVendas;
Uso o hibernate criteria pra salvar novas “regras” no banco sem nenhum problema. Apenas seto uma lista de CanaisVenda no atributo e pronto. O hibernate até cria automaticamente uma tabela no banco pra fazer o relacionamento entre as duas. Tal tabela possui apenas regras_id e canalVendas_id.
O grande problema acontece na hora de buscar isso no banco. Por exemplo, ao buscar no banco determinada regra que está relacionada 2 canais de venda, eu consigo trazer o objeto sem problema, se eu pedir um “size” do getCanaisVenda()…ele diz que o tamanho é 2. Contudo, não consigo acessar de jeito nenhum as informações dos Canais de Venda em questão.
Com o atributo Caminho (que é OneToOne), eu simplesmente coloco regra.getCaminho().getNome() e pronto, agora não importa o que eu faça com o atributo canalVendas, não consigo de jeito nenhum acessar os valores dos dois Canais de Venda relacionados a tal regra.
Alguém pode me ajudar ??