我正在尝试通过 Hibernate 4.1 从 JSP 访问 MySQL 表中的成员列表。
每当我执行代码时,我的页面中都会出现此异常。
org.apache.jasper.JasperException: Exception in JSP: /home.jsp:27
org.hibernate.exception.SQLGrammarException: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near '.members members0_' at line 1
详细的异常显示以下行是罪魁祸首......
List<Members> result = ses.createQuery( "from Members" ).list();
我Members.hbm.xml
的如下...
<hibernate-mapping>
<class name="com.stichon.ets.db.Members" table="members" catalog="stiadmin_ets">
<id name="idMembers" type="java.lang.Integer">
<column name="id_members" />
<generator class="identity" />
</id>
<property name="initials" type="string">
<column name="`initials`" length="15" />
</property>
<property name="firstName" type="string">
<column name="`first_name`" length="45" />
</property>
<property name="lastName" type="string">
<column name="`last_name`" length="45" />
</property>
<property name="mobile" type="string">
<column name="`mobile`" length="15" not-null="true" />
</property>
<set name="notificationses" table="notifications" inverse="true" lazy="true" fetch="select">
<key>
<column name="id_member" />
</key>
<one-to-many class="com.stichon.ets.db.Notifications" />
</set>
</class>
</hibernate-mapping>
在列名中添加“`”(反引号)没有帮助.... :(
更新:日志文件中的 SQL 查询。
Hibernate: select devices0_.`idDevices` as idDevices1_0_, devices0_.`name` as name2_0_, devices0_.`desc` as desc3_0_ from stiadmin_ets.stiadmin_ets.`devices` devices0_
我在这里看到 2 个问题
- 它将 0_ 附加到表名,1_0_ 附加到第一个字段,2_0_ 附加到第二个字段,依此类推。
- 它附加了额外的数据库名称 stiadmin_ets.stiadmin_ets。可能与 hbm 文件中的目录属性有关。会检查...
提前致谢