0

Java 1.7 と Hibernate 4.1.9 を使用しています。私は Hibernate に比較的慣れていないので、重要な情報を省略した場合はお知らせください。私はこれを含むjavax.persistence.Entityと呼ばれる私のクラスに持ってMeetingいます:

@Column(name = "ballot_id")
private Long ballotId;

public Long getBallotId() {
    return ballotId;
}

public void setBallotId(Long ballotId) {
    this.ballotId = ballotId;
}

次のようなクエリを作成しようとしています。

Query query = session.createQuery("from Meeting m where m.ballotId=:ballotId");
query.setParameter("ballotId", someLongValue);
meeting = (Meeting) query.uniqueResult();

しかし、私はorg.hibernate.exception.SQLGrammarException: Unknown column 'meeting0_.ballotId' in 'field list'エラーが発生しています。このようにクエリを作成する場合、Hibernate は、データベースの列名がオブジェクトのプロパティ名と異なることを示す注釈をチェックしないようです。これを行う別の方法はありますか、またはこれに追加する必要があるものはありますか? 多分私は何かを逃したか、HQLが間違っていましたか?

ありがとう!

4

2 に答える 2

1

注釈を移動する必要があるように見えます:

private Long ballotId;

@Column(name = "ballot_id")
public Long getBallotId() {
    return ballotId;
}

public void setBallotId(Long ballotId) {
    this.ballotId = ballotId;
}

この回答によると、あなたのHQLは問題ないはずです。

于 2013-05-16T03:05:31.373 に答える
0

例外:

  • org.hibernate.exception.SQLGrammarException: Unknown column 'someTable.someColumn' in 'field list'

  • org.hibernate.exception.SQLGrammarException: Column "someTable.someColumn" not found;

問題:列 (フィールドではない!)someColumn がテーブルsomeTable(エンティティによって参照される) に存在しません。

存在することを確認してください。

@Column(name = "someColumn")注釈がある場合は、それが読み取られていることを確認してください (適切な場所に配置されていますか? フィールドまたはgetter? 両方ではありません)。AnnotationConfigurationそれらが機能するように構成するときに使用する必要がありますSessionFactory。また、xmlマッピング ファイルもあるかどうかを確認してください。注釈が上書きされている可能性があります。

于 2013-05-16T03:39:47.923 に答える