I am designing the persistence repository for an app.
I am new to Hibernate+JPA2 and I am having trouble creating more complex relationships
You have to use @JoinColumn(name=..., nullable=false) not @Column
@JoinColumn(name=..., nullable=false)
See the complete API
Or you can just use @NotNull from javax.validations.constraints package.
It should be enough to just use @ManyToOne(optional = false)
@ManyToOne(optional = false)