我在我的java程序中使用hibernate并且使用它时遇到了一些麻烦.. 这是我的xml:
<hibernate-mapping>
<class name="revEngMapping.TestNetwork" table="testNetwork">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="networkElementId" type="string">
<column name="networkElement_id" length="45" />
</property>
<property name="date" type="string">
<column name="Date" length="45" />
</property>
<property name="oid" type="string">
<column name="Oid" length="150" />
</property>
<property name="value" type="string">
<column name="Value" length="200" />
</property>
</class>
这是我的java类:
public class TestNetwork implements java.io.Serializable {
private Integer id;
private String networkElementId;
private String date;
private String oid;
private String value;
public TestNetwork() {
}
public TestNetwork(String networkElementId, String date, String oid,
String value) {
this.networkElementId = networkElementId;
this.date = date;
this.oid = oid;
this.value = value;
}
然后它只是吸气剂和制定者,而在我的主要部分,我只想展示它:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Criteria crit = session.createCriteria(TestNetwork.class);
List resultList=crit.list();
for(int i=0;i<resultList.size();i++)
System.out.println(((TestNetwork)resultList.get(i)).getId()+" "+((TestNetwork)resultList.get(i)).getDate());
session.getTransaction().commit();
在我的控制台中,它说我有一个SQL错误..
希望s.one可以提供帮助。感谢10:20:54,626 WARN JDBCExceptionReporter:233 - SQL错误:1064,SQLState:42000 10:20:54,628错误JDBCExceptionReporter:234 - 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“.testNetwork this_”附近使用正确的语法 线程“main”中的异常org.hibernate.exception.SQLGrammarException:无法执行查询 在org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92) 在org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) 在org.hibernate.loader.Loader.doList(Loader.java:2536)
答案 0 :(得分:0)
mysql要求你在访问表名时使用反引号``列,请在定义
时返回刻度例如..
<property name="someProperty" column="`dbColumnName`"/>
这应该可以解决你的问题..