HibernateとStrutsを使い、簡単なWebアプリを作っていたのだが、以下のエラーが出てなかなか先に進まなかった。どうやらBeanとTBLがうまくマッピングされていないことが原因らしい。
致命的: フォームBean bookstore.action.AddToCartItems の生成エラー
org.hibernate.hql.ast.QuerySyntaxException: TBook is not mapped [from TBook]
at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181)
at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:93)
at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:277)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
色々調べてみると、hibernate.cfg.xmlのmappingタグの記述漏れのようであった。
<hibernate-configuration>
<session-factory>
;
</session-factory>
<mapping class=”bookstore.pbean.TBook”/> ←ここが抜けていた。
</hibernate-configuration>
これを修正して、再度実行すると、うまくデータ取得ができた。
Googleで検索しても、あまり情報が出てこなかったのでとりあえず書いておく。