Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property

You need to set the mappedBy attribute of the @OneToMany annotation to psyQuestions instead of question. The value of mappedBy attributes is the name of the class field on the other side of the relationship, in this case psyQuestions of the ManyToOne side of class PsyOptions.

public class PsyQuestions {
....
@OneToMany(fetch = FetchType.LAZY,mappedBy="psyQuestions")
private List<PsyOptions> productlist=new ArrayList<PsyOptions>();
....

I had the same issue because the mappedBy in the source entity was defined to "enrollment" (annotated with @OneToMany) but the corresponding property in the target entity was "bankEnrollment"; this is the property annotated with @ManyToOne.

After updating from enrollment to bankEnrollmentin the source entity, the exception went away (as expected_.

Lesson learnt: the mappedBy value (e.g. psyQuestions) should exist as a property name in the target entity.