My entity has an one-to-many association between the User to e-mails
Code:
@Entity
public class User implements java.io.Serializable {
private Set<String> emails = new HashSet<String>();
private String login; //primary key
...
@CollectionOfElements(fetch=FetchType.EAGER)
@Cascade(value=CascadeType.ALL)
public Set<String> getEmails() {
return emails;
}
...
}
When, in DAO, I search by "login" it return only one object (that´s OK). But after I evict this object and try to find another "login" it returns N results.
I don´t understand why !!! Can anyone help me ?
Search function in
UserDAO extends
GenericDAO:
Code:
public List<User> searchUserByLogin(String login) {
try{
return super.findByCriteria(new Criterion[]{Restrictions.eq("login",login)});
}catch( Exception e ){
throw new IllegalArgumentException("Parâmetro CAMPO inválido");
}
}
Search function in
GenericDAO:
Code:
protected List<T> findByCriteria(Criterion... criterion) {
Criteria crit = getSession().createCriteria(getPersistentClass());
for (Criterion c : criterion) {
crit.add(c);
}
return crit.list();
}