objet référence une instance transitoire non sauvegardée: enregistrez l'instance transitoire avant de la rincer

J'ai deux entités: PlayerProfileEntity & UserInfoEntity
J'ai une jointure sur userInfoEntity & PlaterProfileEntity et l'enregistrement de mon dossier dans la base de données comme ceci:

Session session = sessionFactory.openSession();
Transaction tr = session.beginTransaction();
Criteria crit = session.createCriteria(PlayerProfileEntity.class);
player.setUserId(new UserInfoEntity());
player.getUserId().setAddress(user.getUserId().getAddress());
session.save(player);
tr.commit();

J'ai utilisé cette assosiation dans mon PlayerProfileEntity classe

@ManyToOne (fetch = FetchType.LAZY)
@Cascade({CascadeType.REFRESH})
@JoinColumn(name="userid")

J'obtiens cette erreur:

org.hibernate.TransientObjectException: object references an unsaved transient instance - save     the transient instance before flushing: com.shared.entity.UserInfoEntity

Remarque : Si j'utilise CascadeType.Tous, j'ai cette erreur:

Cannot add or update a child row: a foreign key constraint fails

Une idée de comment puis-je résoudre ce

Grâce

source d'informationauteur user1226162