Motivated by this question, I\'ve tried to change the following:
@ManyToMany(cascade={CascadeType.REMOVE, CascadeType.MERGE}) private Set exps
Only the standard interfaces types are allowed as attribute types in JPA. Why are you changing the type of the attribute? With the original definition the underlying collection is still your custom type.