I have found several questions about this, but none with a complete explaintation of the problem, and how to debug it - the answers are all anecdotal.

The problem is that in a Play 1.2.4 JPA test, I'm getting this exception when I save() a model:

org.hibernate.HibernateException: Found two representations of same collection: models.Position.projects

I would like to know:

  1. Is there a documentation of this problem in general, unrelated to Play? The issue is in hibernate, yet a lot of the Google results on this are within Play apps.
  2. What are some basic best practices to avoid this problem?
  3. Is it caused by Play? Or something I'm doing wrong?
  4. How to resolve in my specific case?

Here is a reproduction of the problem on github. I have four entities:

@Entity
public class Person extends Model {
    public String name;

    @OneToMany(cascade = CascadeType.ALL)
    public List<Position> positions;
}


@Entity
public class Position extends Model {
    public Position(){}
    public Position(Company companies) {
        this.companies = companies;
        this.projects = new ArrayList<Project>();
    }

    @OneToOne
    public Company companies;

    @ManyToOne
    public Person person;

    @OneToMany
    public List<Project> projects;
}

@Entity
public class Company extends Model {
    public String name;
}

@Entity
public class Project extends Model {
    public Project(){}
    publ
Edit
Report