Try this:
@ManyToOne(optional=true, cascade={PERSIST, MERGE})
@JoinTable(name="CONTRACT_TABLE", joinColumn=@JoinColumn(name="FOREIGN_KEY_IN_CONT_TABLE"))
private Contract contract
As you said this is a unidirectional relationship so you need to persist or merge the other side of this relationship in a way, to do this you have to use 'cascade' attribute as above