Como estou usando JPA, não gostaria de trocar “SET” por “LIST”; pois esta simples troca reflete no comportamento do banco de dados.
O meu problema é: Preciso passar através de um formulário o Phone
, através da classe Client
, setando o ddd
e o number
. Porém, na JSP, estou tendo dificuldades em acessar a classe Phone
através do Client
. Se fosse com List, seria mais fácil. Procurei soluções, porém não achei.
A exceção é:
Entendi a exceção. Porém, não sei como fazer o acesso usando implementações SET.
Segue as classes e a JSP abaixo:
@Entity
public class Phone implements Serializable {
private static final long serialVersionUID = 7507976788394149092L;
@Id
private String ddd;
@Id
private String number;
public String getDdd() {
return ddd;
}
public void setDdd(String ddd) {
this.ddd = ddd;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public void setPrincipal(boolean principal) {
this.principal = principal;
}
}
@Entity
public class Client {
@Id
@Column(columnDefinition = "CHAR(11)")
private String cpf;
@ManyToMany
private Set<Phone> phones = new HashSet<Phone>();
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public Set<Phone> getPhones() {
return phones;
}
public void setPhones(Set<Phone> phone) {
this.phones = phone;
}
}
...
<label for="dddPhone">DDD - Fixo</label>
<springForm:input path="phones.ddd" type="number" class="form-control" id="dddPhone" placeholder="DDD" />
...