org.hibernate.MappingException: Could not determine type for: java.util.Set [duplicate]
I got the same problem with @ManyToOne
column. It was solved... in stupid way. I had all other annotations for public getter methods, because they were overridden from parent class. But last field was annotated for private variable like in all other classes in my project. So I got the same MappingException
without the reason.
Solution: I placed all annotations at public getter methods. I suppose, Hibernate can't handle cases, when annotations for private fields and public getters are mixed in one class.
Adding the @ElementCollection
to the List field solved this issue:
@Column
@ElementCollection(targetClass=Integer.class)
private List<Integer> countries;
My guess is you are using a Set<Role>
in the User
class annotated with @OneToMany
. Which means one User
has many Role
s. But on the same field you use the @Column
annotation which makes no sense. One-to-many relationships are managed using a separate join table or a join column on the many side, which in this case would be the Role class. Using @JoinColumn
instead of @Column
would probably fix the issue, but it seems semantically wrong. I guess the relationship between role and user should be many-to-many.
Had this issue just today and discovered that I inadvertently left off the @ManyToMany annotation above the @JoinTable annotation.