私はクラスのコメントを持っています:
@Entity
@Table(name = Constants.COMMENTS_TABLE)
@Audited
public class Comment {
@Column(name = "comment", nullable = false)
private String comment;
@ElementCollection(targetClass = CommentTopic.class)
@Enumerated(EnumType.STRING)
@Fetch(value = FetchMode.JOIN)
@CollectionTable(name = Constants.COMMENTS_TOPIC_JOIN_TABLE, joinColumns = @JoinColumn(name = "comment_id"))
@Column(name = "topic")
private Set<CommentTopic> commentTopics;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "comment_id", nullable = false)
private Long commentId;
}
コメント クラスの永続化は機能しますが、次の基準クエリは機能します。
Criteria criteria = session.createCriteria(Comment.class)
.add(Restrictions.eq("commentTopics", topic));
List<Comment> entries = criteria.list();
org.hibernate.exception.DataException: No value specified for parameter 1 をスローします。
これは構築されたクエリです:
this_.comment_id を comment1_0_0_ として、this_.comment を comment0_0_ として、commenttop2_.comment_id を comment1_0_2_ として、commenttop2_.topic を topic2_ として選択します。
間違った注釈を使用していませんか?
条件クエリが正しく構築されていませんか?