0

私は2つのエンティティを持ってEquipementおり、Company次のようにしています:

public class Equipement{
  String type ;
  Company company ;

  @ManyToOne(cascade = CascadeType.ALL)
  public Company getCompany(){
    return this.company ;
  }
}

public class Company{
  // fields getters setters ..
}

それぞれEquipementが から購入されCompanyます。 を作成してCompanyから に注入する必要があります。Equipement

Session session = SessionFactory.openSession() ;
Transaction tx = session.beginTransaction() ;

Equipement equipement = new Equipement() ;
Company company = new company() ;
equipement.setCompany(company) ;
session.save(equipement) ;

tx.commit() ;
session.close() ;

そしてそれは私に例外を与えます

TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: org.marsamaroc.mmapp.domain.Company
4

1 に答える 1

0

試す

public class Company 
{
    @OneToMany(cascade = CascadeType.ALL)
    public Set<Equipement> getEquipements() { ... }
}

...
Session session = SessionFactory.openSession() ;
Transaction tx = session.beginTransaction() ;

Equipement equipement = new Equipement() ;
Company company = new company() ;
equipement.setCompany(company) ;

// Save should cascade (i.e. "equipment" should be saved too).
session.save(company) ;

tx.commit() ;
session.close() ;
...

ところで、英語では、余分な 'e' を除いた "equipment" です (気になる場合に備えて!)。

于 2012-09-04T01:49:43.707 に答える