seguinte senhores: tenho uma tabela cliente, outra tabela serviço e uma tabela associativa cliente_serviço. mas cada serviço tem N clientes compradores e N clientes vendedores. então na tabela cliente_serviço eu coloquei um atributo “comprador” para indicar um cliente comprador ou vendedor caso contrário. Minha dúvida é a seguinte: tem como eu colocar uma associação manytomany e filtrar o conteúdo da tabela cliente_serviço pelo campo “comprador” algo assim:
public class Servico
//restante dos atributos
@ManyToMany(targetEntity=Cliente.class)
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.LOCK})
@JoinTable(name="tab_cliente_servico",joinColumns={
@JoinColumn(name="servico")} , inverseJoinColumns={
@JoinColumn(name="cliente")})
@LazyCollection(LazyCollectionOption.TRUE)
@Where(clause="comprador = 1")
private Set<Usuario> clientesCompradores = new HashSet<Usuario>();
@ManyToMany(targetEntity=Cliente.class)
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.LOCK})
@JoinTable(name="tab_cliente_servico",joinColumns={
@JoinColumn(name="servico")} , inverseJoinColumns={
@JoinColumn(name="cliente")})
@LazyCollection(LazyCollectionOption.TRUE)
@Where(clause="comprador = 0")
private Set<Usuario> clientesVendedores = new HashSet<Usuario>();
mas a anotação @Where tenta filtrar clientes e eu precisaria filtrar a tabela servico_cliente, alguem tem alguma sugestão?