0

私はエンティティユーザーとレポートを持っています

class User {
    @JoinColumn(name = "user_id")
    protected Set<BattleReport> reports;
}

class Report {
    byte data;
}

ユーザー ID を知っているので、ユーザーをロードせずにユーザーのレポート データを更新する必要があります。どうやってするの?

私はこの方法を試しましたが、うまくいきません:

Query reportsQuery = session.createQuery("SELECT reports FROM User WHERE id = :id");
    reportsQuery.setParameter("id", id);
    List<?> list = reportsQuery.list();

    for (Object o : list) {
        Report report = (Report) o;
        report.setData(42);
        session.update(report);
    }
4

3 に答える 3

1

レポートのユーザーの ID を照合します。

Query reportsQuery = session.createQuery(
    "FROM Report r WHERE r.user.id = :id");
于 2013-09-07T13:54:10.637 に答える
0

正解は次のとおりです。

SELECT u.reports FROM User u WHERE u.id = :id
于 2013-09-07T14:09:32.110 に答える
0

制約として user_id を使用して Report テーブルで Criteria クエリを実行しようとしましたか? データベースの関係やフィールドがわからないため、実際の例を示すことはできませんが、次のようなものはおそらくユーザーフルになる可能性があります。

基準の例

于 2013-09-07T15:04:34.477 に答える