Olá pessoa, minha primeira vez na lista então se eu estiver fazendo algo errado aqui no post me desculpem !
eu estou desenvolvendo um sistema com netbeans platform mais Hibernarte+jpa.
aqui duas classe envolvidas no erro, pois acontece quando eu tento salvar no banco a tbGranted
TbTelas :
...
public class TbTelas implements Serializable {
private static final long serialVersionUID = 1L;
// @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
@SequenceGenerator(name="SEQ_TB_TELAS", sequenceName="SEQ_TB_TELAS")
@Id @GeneratedValue(generator="SEQ_TB_TELAS")
@Basic(optional = false)
@Column(name = "COD_TELA")
private Long codTela;
@Column(name = "TELA")
private String tela;
@Column(name = "DESCR_TELA")
private String descrTela;
@Column(name = "TIPTEL")
private String tiptel;
@Column(name = "CLASS")
private String class1;
@OneToMany(mappedBy = "codTela")
private List<TbGranted> tbGrantedList;
...
TbGranted
...
public class TbGranted implements Serializable {
private static final long serialVersionUID = 1L;
// @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
//@Id
@SequenceGenerator(name="SEQ_TB_GRANTED", sequenceName="SEQ_TB_GRANTED")
@Id @GeneratedValue(generator="SEQ_TB_GRANTED")
@Basic(optional = false)
@Column(name = "ID")
private Long id;
@JoinColumn(name = "COD_TELA", referencedColumnName = "COD_TELA")
@ManyToOne(cascade=CascadeType.ALL)
private TbTelas codTela;
@JoinColumn(name = "COD_ROLE", referencedColumnName = "COD_ROLE")
@ManyToOne(cascade=CascadeType.ALL)
private TbRole codRole;
...
e aqui o erro :
[quote]java.lang.IllegalArgumentException: Removing a detached instance br.com.multipla.ent.TbTelas#1
at org.hibernate.ejb.event.EJB3DeleteEventListener.performDetachedEntityDeletionCheck(EJB3DeleteEventListener.java:45)
at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:86)
at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:775)
at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:758)
at org.hibernate.engine.CascadingAction$1.cascade(CascadingAction.java:121)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
at org.hibernate.event.def.DefaultDeleteEventListener.cascadeAfterDelete(DefaultDeleteEventListener.java:327)
at org.hibernate.event.def.DefaultDeleteEventListener.deleteTransientEntity(DefaultDeleteEventListener.java:189)
at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:81)
at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:52)
at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:766)
at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:744)
at br.com.thinkit.ExecQ.deletar(ExecQ.java:108)
[/quote]
aqui o execQ onde da o erro:
...
public void deletar(Object obj) {
Session ss = getSess();
ss.beginTransaction();
ss.merge(obj);
ss.delete(obj);
ss.beginTransaction().commit();
}
public static Session getSess(){
return ((Session)Installer.getEm().getOra().getDelegate()).getSessionFactory().openSession();
}
...
Alguém pode ajudar ou ficou confuso o post ?
abcs
Daniel