- PR -

Hibernateの発行するSQLが変

1
投稿者投稿内容
GOMO
会議室デビュー日: 2007/09/12
投稿数: 2
投稿日時: 2007-09-12 12:50
初めて書き込みます
よろしくお願いします

Hibernateを試してみてるのですが、変なSQLを発行してエラーになってしまいます。
エラー文はこんな感じです

Hibernate: select customer0_.id as id0_, customer0_.firstName as firstName0_, customer0_.lastName as lastName0_, customer0_.street as street0_, customer0_.city as city0_ from customer customer0_
2007/09/12 12:09:04 org.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 0, SQLState: 42703
2007/09/12 12:09:04 org.hibernate.util.JDBCExceptionReporter logExceptions
致命的: ERROR: column customer0_.id does not exist
org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at Hibertest.main(Hibertest.java:15)
Caused by: org.postgresql.util.PSQLException: ERROR: column customer0_.id does not exist
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548 )
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java: 351)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:255)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 8 more

テーブル名に0_がついたり、from句がcustomer customer0_ となってしまいます。
マッピングファイルは

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="Customer" table="customer">
<id name="id">
<generator class="increment"/>
</id>

<property name="firstName"/>
<property name="lastName"/>
<property name="street"/>
<property name="city"/>
</class>
</hibernate-mapping>
こんな感じです。

Hibernateのバージョンは3.2.5、
JDBCはpostgresql-8.2-506.jdbc3.jar(DBはpostgresql8.2.4)
です。何か原因が検討つく方いらっしゃいましたらお願いします。

できれば最初はEclipsやツールなどは使わず、手作業で動かして見ようと思ったのですが、書籍もネットもツールを使うものや、バージョンが2.〜時代の古いものが多く困っています。JAVAは実務では使っていなく、勉強初めて間もないのでここまで動かすのも大変でした。
Hibernate3系の、いいサイト、書籍あったらアドバイスいただけるとうれしいです。
GOMO
会議室デビュー日: 2007/09/12
投稿数: 2
投稿日時: 2007-09-12 13:37
すいません。根本的な勘違いでした。
DBの方のidのをcustomer_idに変えたの忘れてました。
そこを直したら動きました。
失礼しました。

from customer customer0_というのは
FROM句でcustomerにcustomer0_という別名をつけてたんですね。
ASを省略できるのを知らなかったものでお騒がせしました。
JAVAの質問でもなんでもなくて・・・お恥ずかしい
1

スキルアップ/キャリアアップ(JOB@IT)