Netbeans platform com (hibernate + jpa) e erro com detached

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