Hibernate QuerySyntaxException – ‘users is not mapped’

Voor een simple crud functionaliteit wou ik gebruik maken van hibernate en HQL.

Aan de slag met het maken van een mapping file:

<hibernate-mapping>
<class name=”mandaatkracht.crud.hibernate.User” table=”users”>
<id column=”username” name=”userName”>
<generator class=”assigned”/>
</id>
<property column=”display_name” name=”displayName”/>
</class>
</hibernate-mapping>

Vervolgens gaan we de applicatie runnen. In de debugoutput verschijnt het volgende:

Reading mappings from resource :

/application/crud/hibernate/User.hbm.xml
Mapping class: application.crud.hibernate.User -> users

Met daarna de volgende stacktrace:

JSF1001: Managedbean registerManager could not be created.
WebModule[/application]javax.el.ELException: javax.faces.FacesException: javax.faces.FacesException: Cant instantiate class: mandaatkracht.crud.hibernate.CrudManager.. users is not mapped [select u.username from users as u]

Caused by: org.hibernate.hql.ast.QuerySyntaxException: users is not mapped [select u.username from users as u]

De aanroepende code was als volgt:

session.createQuery(“select u.username from ” +
“users u”).list();

Je zou verwachten dat users is gemapt. Na wat speurwerk en proberen kwam ik erachter dat je moet verwijzen naar de klasse (User) en diens attributen en niet naar de tabel. Dus mocht je ooit tegen dit soort problemen aan lopen denk er aan dat je dan de klasse gebruikt en niet de tabelnaam:

session.createQuery(“select u.userName from ” +
User u”).list();

Comments are closed.

  • 071 - 82 000 82
  • Rijndijk 137 | 2394 AG Hazerswoude-Rijndijk
DEMO
Oracle Specialized
Java
GlassFish
WSO2
i-bridge
Rabobank
Greencat
Reuma Revalidatie Rotterdam
Robeco
VU Medisch Centrum
CHS
LUMC
TomTom
TKP
NCCW
Erasmus MC
UMCG
VIR
ANWB
BVA Auctions
D-Reizen
STEDIN