2011-05-10 56 views
0

我使用休眠在我的java程序,我用它得到了一些麻烦.. 这里是我的xml:错误的SQL语法?

<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 Error: 1064, SQLState: 42000 10:20:54,628 ERROR JDBCExceptionReporter:234 - 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 '.testNetwork this_' at line 1 Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.loader.Loader.doList(Loader.java:2536)

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

+2

显示please g (在hibernate配置中设置'')。 – ninja 2011-05-10 08:48:52

回答

0

的MySQL,您需要使用反引号``访问表名&列时,请回来当定义

如..

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

这应该解决您的问题..蜱

  • Anantha Sharma