Depois de um debate nesse tópico, fui convencido pelos argumentos técnicos expostos lá a estudar o Hibernate.
Me deparei com o seguinte problema: Preciso persistir no banco uma lista de objetos da minha entidade, por exemplo, um Usuário possui um conjunto de Endereços, algo assim:
public User {
(...)
private Set<Address> addresses;
(...)
}
Fui direcionado para a documentação do Hibernate: http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/collections.html#collections-ofvalues
Basicamente precisa fazer algo assim:
@Entity
public class User {
[...]
public String getLastname() { ...}
@ElementCollection
@CollectionTable(name="Addresses", joinColumns=@JoinColumn(name="user_id"))
@AttributeOverrides({
@AttributeOverride(name="street1", column=@Column(name="fld_street"))
})
public Set<Address> getAddresses() { ... }
}
@Embeddable
public class Address {
public String getStreet1() {...}
[...]
Olhando assim rapidamente não entendi muito bem o que essas annotations significam. Mas deve ser alguma coisa simples que eu não estou capitando.
Alguém poderia explicar qual tipo de programação/lógica está sendo feita com as anotações acima?
O Hibernate é muito simples, logo eu devo estar com alguma dificuldade para entender essas anotações.