Olá pessoal, já procurei o que pode ser, mas não encontrei uma solução.
Tenho uma entidade de Usuarios, e dentro desta preciso de um @OneToMany de Usuarios, que são os filhos dele. //que esta dando erro
O relacionamento é feito atraves do “código do usuario” com o “cod do superior dele”.
Explicando: Tenho um Usuario, e ele é superior de outros usuarios, e preciso dessa lista de subordinados.
Código:
@Entity
@Table(name = "usuarios", uniqueConstraints = { @UniqueConstraint(columnNames = { "cod_estabelecimento", "cdn_funcionario"}) })
@Cache(usage = CacheConcurrencyStrategy.NONE)
public class Usuarios implements Serializable {
private static final long serialVersionUID = -9104628676001725524L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USUARIOS_OID")
@SequenceGenerator(name = "USUARIOS_OID", sequenceName = "oid_usuarios", allocationSize = 1)
@Column(name = "OID")
private Integer OID;
@Column(name = "cod_estabelecimento", length = 3, nullable = false)
private String cod_estabelecimento;
@Column(name = "cdn_funcionario", nullable = false)
private Integer cdn_funcionario;
@Column(name = "nom_funcionario", length = 100, nullable = false)
private String nom_funcionario;
@Column(name = "cod_superior")
private Integer cod_superior;
@Cache(usage = CacheConcurrencyStrategy.NONE)
@OneToMany(cascade = { CascadeType.REMOVE }, fetch = FetchType.EAGER, targetEntity = Usuarios.class)
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumns( {
@JoinColumn(name = "cod_estabelecimento", referencedColumnName = "cod_estabelecimento", insertable = false, updatable = false),
@JoinColumn(name = "cdn_funcionario", referencedColumnName = "cod_superior", insertable = false, updatable = false) })
private Set<Usuarios> children;
//...get and set...
}
O Erro:
<blockquote> Exception in thread “main” javax.persistence.PersistenceException: org.hibernate.HibernateException: collection is not associated with any session
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:629)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:73)</blockquote>
Alguém tem alguma dica se isso pode fazer?
Muito Obrigado.
