0

1対1の関連付け:

@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "messageDetails")
public MessageEntry getMessageEntry() {
    return messageEntry;
}

@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
public MessageDetails getMessageDetails() {
    return messageDetails;
}

ステートレス セッションで依存エントリをロードしたい:

    MessageDetails messageDetails =
            (MessageDetails) sess.createCriteria(MessageDetails.class)
                    .add(Restrictions.eq("messageEntry", messageEntry))
            .uniqueResult();

私は得る

Exception in thread "main" org.hibernate.exception.SQLGrammarException: No value specified for parameter 1
    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:122)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)

SQLは私が望むものではありません。私は何かを理解していないのでしょうか?

03:21:13,274 DEBUG SQL:104 - /* criteria query */ select this_.id as id11_0_, this_.date as date11_0_, this_.messageId as messageId11_0_, this_.replyTo as replyTo11_0_, this_.subject as subject11_0_ from MessageDetails this_ where this_.id=?

プロパティ messageEntry で MessageDetails を選択したいのですが、それは可能でしょうか? ありがとう。

4

0 に答える 0