Tenho o seguinte código
User.java
@Entity
@Table(name = "USER")
public class User implements Serializable {
...
@Embedded
@AttributeOverride(name = "key", column = @Column(name = "PASSWORD", nullable = false))
private Password password;
...
}
Password.java
public interface Password extends Serializable {
Object getKey();
void setKey(Object k);
}
PasswordImpl.java
@Embeddable
public class PasswordImpl implements Password {
private Object key;
public Object getKey() {
return this.key;
}
public void setKey(Object key) {
this.key = key.toString();
}
public int hashCode() {
...
}
public boolean equals(Object obj) {
...
}
}
Meu problema é q parece que a annotation @Embeddable na classe PasswordImpl não está funcionando para a minha classe User no atributo password onde faço a Annotation @Embedded e @AttributeOverride onde essa ultima substitui o key pela coluna PASSWORD na tabela USER.
Alguem sabe me dizer pq qd uso o UserDao para buscar o User ele não preenche o valor do atributo password com o valor da coluna PASSWORD?
Não sei se está faltando almgua annotation, ou alguma configuração, ou colocar @Embeddable na interface, sendo q já fiz e não funcionou.
Sou verde em JPA, sei o padrão, ams esse lance de @Embeddable e @Embedded em em tributo q possui interface, complica.
Se fosse a classe PasswordImpl direto eu acho q funcionaria, pois já vi muitos exemplos e todos usam a classe q implementa direto, mas eu tenho essa interface q não tem como tirar.
Se alguem q manja bem de JPA puder me ajuda, está ai um desafio.
Valeu!!