Mapeamento

0 respostas
V

Olá pessoal,

Estou fazendo um método de inserção, que está dando um erro:EntityManager is closed();

Para fazer a inserção uso a entidade, RTS que está abaixo:

@Entity

@Table(name = rts)

@NamedQueries({@NamedQuery(name = Rts.findAll, query = SELECT r FROM Rts r),

@NamedQuery(name = Rts.findByRtsId, query = SELECT r FROM Rts r WHERE r.rtsId = :rtsId),

@NamedQuery(name = Rts.findByCodigo, query = SELECT r FROM Rts r WHERE r.codigo = :codigo),

@NamedQuery(name = Rts.findByBts, query = SELECT r FROM Rts r WHERE r.bts = :bts),

@NamedQuery(name = Rts.findByEdicao, query = SELECT r FROM Rts r WHERE r.edicao = :edicao),

@NamedQuery(name = Rts.findByPasta, query = SELECT r FROM Rts r WHERE r.pasta = :pasta),

@NamedQuery(name = Rts.findByExecutadoPor, query = SELECT r FROM Rts r WHERE r.executadoPor = :executadoPor),

@NamedQuery(name = Rts.findByCriacao, query = SELECT r FROM Rts r WHERE r.criacao = :criacao),

@NamedQuery(name = Rts.findByAtualizacao, query = SELECT r FROM Rts r WHERE r.atualizacao = :atualizacao),

@NamedQuery(name = Rts.findByStatus, query = SELECT r FROM Rts r WHERE r.status = :status),

@NamedQuery(name = Rts.findByRevisao, query = SELECT r FROM Rts r WHERE r.revisao = :revisao),

@NamedQuery(name = Rts.findByBloqueado, query = SELECT r FROM Rts r WHERE r.bloqueado = :bloqueado),

@NamedQuery(name = Rts.findByBtsId, query = SELECT r FROM Rts r WHERE r.btsId = :btsId),

@NamedQuery(name = Rts.findByOficial, query = SELECT r FROM Rts r WHERE r.oficial = :oficial),

@NamedQuery(name = Rts.findByReedicao, query = SELECT r FROM Rts r WHERE r.reedicao = :reedicao),

@NamedQuery(name = Rts.getUltimoCod, query = SELECT MAX(codigo) FROM Rts),

@NamedQuery(name = Rts.getUltimoId, query = SELECT MAX(rtsId) FROM Rts),

@NamedQuery(name = Rts.findByAtivo, query = SELECT r FROM Rts r WHERE r.ativo = :ativo)})

public class Rts implements Serializable {

private static final long serialVersionUID = 1L;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “rts_id”)

private int rtsId;

@Id

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “codigo”)

private Integer codigo;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “bts”)

private int bts;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

<a class="mention" href="/u/lob">@Lob</a>

@Column(name = “objetivo”)

private String objetivo;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “edicao”)

private String edicao;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

<a class="mention" href="/u/lob">@Lob</a>

@Column(name = “premissas”)

private String premissas;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

<a class="mention" href="/u/lob">@Lob</a>

@Column(name = “periodo”)

private String periodo;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

<a class="mention" href="/u/lob">@Lob</a>

@Column(name = “equipe”)

private String equipe;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

<a class="mention" href="/u/lob">@Lob</a>

@Column(name = “descricao”)

private String descricao;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

<a class="mention" href="/u/lob">@Lob</a>

@Column(name = “conclusao”)

private String conclusao;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

<a class="mention" href="/u/lob">@Lob</a>

@Column(name = “anexos_rts”)

private String anexosRts;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “pasta”)

private String pasta;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="executado_por", referencedColumnName="username")
private Seguranca executadoPor;

@Basic(optional = false)
@Lob
@Column(name = "associado")
private String associado;
@Basic(optional = false)
@Lob
@Column(name = "verificado_por")
private String verificadoPor;
@Basic(optional = false)
@Column(name = "criacao")
private String criacao;
@Column(name = "atualizacao")
@Temporal(TemporalType.TIMESTAMP)
private Date atualizacao;
@Basic(optional = false)
@Column(name = "status")
private String status;
@Basic(optional = false)
@Column(name = "revisao")
private String revisao;
@Basic(optional = false)
@Column(name = "bloqueado")
private String bloqueado;
@Basic(optional = false)
@Column(name = "bts_id")
private int btsId;
@Basic(optional = false)
@Column(name = "oficial")
private String oficial;
@Basic(optional = false)
@Column(name = "reedicao")
private String reedicao;
@Basic(optional = false)
@Column(name = "ativo")
private String ativo;

Percebe que existe um mapeamento entre as tabelas “Rts e Seguranca”

A entidade segurança ta apresentada abaixo:

@Entity

@Table(name = seguranca)

@NamedQueries({@NamedQuery(name = Seguranca.findAll, query = SELECT s FROM Seguranca s),

@NamedQuery(name = Seguranca.findByUid, query = SELECT s FROM Seguranca s WHERE s.uid = :uid),

@NamedQuery(name = Seguranca.findByUsername, query = SELECT s FROM Seguranca s WHERE s.username = :username),

@NamedQuery(name = Seguranca.findBySenha, query = SELECT s FROM Seguranca s WHERE s.senha = :senha),

@NamedQuery(name = Seguranca.findByNome, query = SELECT s FROM Seguranca s WHERE s.nome = :nome),

@NamedQuery(name = Seguranca.findByRamal, query = SELECT s FROM Seguranca s WHERE s.ramal = :ramal),

@NamedQuery(name = Seguranca.findByTelRes, query = SELECT s FROM Seguranca s WHERE s.telRes = :telRes),

@NamedQuery(name = Seguranca.findByCelular, query = SELECT s FROM Seguranca s WHERE s.celular = :celular),

@NamedQuery(name = Seguranca.findByRevisor, query = SELECT s FROM Seguranca s WHERE s.revisor = :revisor),

@NamedQuery(name = Seguranca.findByCoordenador, query = SELECT s FROM Seguranca s WHERE s.coordenador = :coordenador),

@NamedQuery(name = Seguranca.findByAdmin, query = SELECT s FROM Seguranca s WHERE s.admin = :admin),

@NamedQuery(name = Seguranca.findByAtivo, query = SELECT s FROM Seguranca s WHERE s.ativo = :ativo),

@NamedQuery(name = Seguranca.checkUsername, query = SELECT s FROM Seguranca s WHERE s.username = :username),

@NamedQuery(name = Seguranca.checkNome, query = SELECT s FROM Seguranca s WHERE s.nome = :nome),

@NamedQuery(name = Seguranca.nomeEscolhido, query = SELECT s FROM Seguranca s WHERE s.username = :username),

@NamedQuery(name = Seguranca.findByEmail, query = SELECT s FROM Seguranca s WHERE s.email = :email)})
public class Seguranca implements Serializable {

private static final long serialVersionUID = 1L;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “uid”)

private int uid;

@Id

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “username”)

private String username;

@Column(name = “senha”)

private String senha;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “nome”)

private String nome;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “ramal”)

private String ramal;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “tel_res”)

private String telRes;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “celular”)

private String celular;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “revisor”)

private String revisor;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “coordenador”)

private String coordenador;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “admin”)

private String admin;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “ativo”)

private String ativo;

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = “email”)

private String email;
@OneToMany(mappedBy="executadoPor",fetch=FetchType.LAZY)
private Collection<Rts> rtss;

Quando faço a inserção sem usar esse mapeamento, funciona corretamente.

Quando uso dá erro: Entitymanager is closed

Alguém poderia me ajudar,acho que deve ser algo no mapeamento, mas não to conseguindo detectar.

Obrigada.

Criado 19 de junho de 2009
Respostas 0
Participantes 1