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:
[code]@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;
[/code]
PlanoSaude:
[code]
@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;[/code]
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 …