SQL语法错误?

时间:2011-05-10 08:29:57

标签: java hibernate mapping

我在我的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错误..

  

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)

希望s.one可以提供帮助。感谢

1 个答案:

答案 0 :(得分:0)

mysql要求你在访问表名时使用反引号``列,请在定义

时返回刻度

例如..

<property name="someProperty" column="`dbColumnName`"/>

这应该可以解决你的问题..

  • Anantha Sharma