Galera, vou começar dizendo o resultado que desejo ter:
tabela PlanoSaude:
id | cliente_id | outros campos...
1 | 1 | ...
1 | 2 | ...
2 | 1 | ...
(notem que o campo ID repete, mas não para o mesmo cliente_id... é gerado um novo ID para um outro Cliente_id....
Para tal, tenho as seguiintes entidades: Cliente:@Entity
@Resource
public class Cliente {
@Id
@GeneratedValue
private Long id;
@Length(max = 50)
@PrimaryKeyJoinColumn
private String titular;
@Length(max = 1)
private String sexo;
@CPF
@Length(max = 11)
private String cpf;
//...outros campos...
@OneToMany(mappedBy = "cliente", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@Fetch(org.hibernate.annotations.FetchMode.SUBSELECT)
private List<PlanoSaude> planoSaude;
@Entity
@Resource
public class PlanoSaude {
@Id
@GeneratedValue
private Long id;
private Long cliente_id;
@Length(max = 40)
@NotNull
private String planoSaude;
//...outros campos...
@ManyToOne
@JoinColumn(name = "cliente_id", insertable = false, updatable = false)
private Cliente cliente;
Minha ideia inicial era anotar o campo cliente_id da classe PlanoSaude com @Id, porém da um erro dizendo para usar o "extends serializable".... até fiz umas tentativas e erros, e decidi pedir ajuda....
Para ficar bem claro a duvida, desejo saber a anotação que devo colocar para que a tabela PlanoSaude não gere um ID sequencial independente, mas um sequencial com base na chave (neste caso o cliente_id) assim como mencionei no inicio do post. Uma coisa eu sei que é necessário: definir cliente_id como chave também. Mas to perdidasso como fazer....
**Eclipse + Hibernate + Vraptor + JSP + Jquery ...