0

私は 1 対多の関係 (プロフィールからメッセージ) を持っています。特定のユーザー/プロフィールが所有するメッセージを保存しようとしました。以下のコードの何が問題になっていますか?

public Message createMessage(Message msg, String recepient) {
    EntityManager em = EMF.get().createEntityManager();
    UserAccess access = new UserAccess();
    Profile user = access.searchUser(recepient);
    msg.setUser(user);

    em.getTransaction().begin();

    em.persist(msg);

    em.getTransaction().commit();
    em.close();
    return msg;
}

検索ユーザー メソッド

public Profile searchUser(String displayName){
    EntityManager em = EMF.get().createEntityManager();
    Profile user;
    try{
        Query q = em.createNamedQuery("Profile.searchByDisplayName");
        q.setParameter("displayName", displayName);
        user = (Profile) q.getSingleResult();
    } catch(javax.persistence.NoResultException e){
        user = null;
    }
    em.close();
    return user;
}

以下のエラーが発生しました。

java.lang.IllegalStateException: Primary key for object of type Profile is null.
4

1 に答える 1