1

列の 1 つが外部キーであるテーブルを選択しようとすると、このエラーが発生しました。

select count(*) from cards where username = 'name';

私はJava jdbcを介してそれを行っているので、MySqlコマンドラインを介した同じクエリがうまく機能するため、マッピングに何か問題があると思います:

<many-to-one name="users" class="table" update="false" insert="false" fetch="select">
        <column name="username" length="45" not-null="true" />
</many-to-one>

2013-03-02 12:19:03,660  INFO [http-bio-8080-exec-5] (NullableType.java:203) - could not read column value from result set: username; Column 'username' not found.
2013-03-02 12:19:03,663  WARN [http-bio-8080-exec-5] (JDBCExceptionReporter.java:100) - SQL Error: 0, SQLState: S0022
2013-03-02 12:19:03,664 ERROR [http-bio-8080-exec-5] (JDBCExceptionReporter.java:101) - Column 'username' not found.

私はこれを見つけました:

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html#d0e13696

セクション16.1.2と16.1.3はおそらく私の問題の答えですが、私はそれを理解できません...

4

3 に答える 3

2

エラーメッセージには次のように記載されています。

結果セットから列の値を読み取ることができませんでした: ユーザー名; 列「ユーザー名」が見つかりません。

の結果セットにselect count(*) from ...は、 という名前の列がありませんusername。カウントという 1 つの列だけで構成されます。

于 2013-03-02T10:49:50.590 に答える
0

getフィールドの場合「Select*」は使用しないでください。
「username='name';のカードからcount(username)を選択」を使用する必要があります。表現。

于 2013-03-02T19:41:25.327 に答える
0

実行してみる

 select count(*) from cards where `cards`.username='name';
于 2013-03-02T10:52:25.647 に答える