0

多対多の関係でリンクされた評価と応答の2つのクラスがあります。評価のコードは次のようになります。

@Entity
public class Evaluation implements Serializable {

private Long id;

@ManyToMany
public List<Reponse> getListOfReponses() {
    return listOfReponses;
}

@Formula("(SELECT COUNT(*) FROM Evaluation_Reponse er, Reponse r, WHERE er.Evaluation_id = id AND r.id = er.listOfReponses_id AND r.correct = 1)")
public Integer getNbCorrectAnswers() {
return nbCorrectAnswers;

}

Correct は、Reponse のプロパティであり、ブール値です。

ご覧のとおり、nbCorrectAnswers 列に入力する休止状態の式を書きました。ただし、評価を保存すると、nbCorrectAnswers 列が空のままであることを除いて、すべて正常に機能します。

では、数式のどこが間違っているのか、または表全体を正しく埋める方法を教えていただけますか? ありがとう

4

1 に答える 1

0

数式は常に読み取り専用です。hibernateは、値を挿入する他のコード/エンティティがあることを前提としています。AFAIK数式も、データベースからロードするときにのみ評価されます。

于 2012-08-19T20:38:00.927 に答える