2016-08-02 49 views
0

我尝试使用Hibernate查询做query.uniqueResult() 我查询包含错误SQL语法中使用Hibernate

从com.classes.Project其中NAME = '测试'

但我出现错误:

您的SQL语法错误;检查 对应于你的MySQL服务器版本正确的语法使用手动 近“的.project project0_其中NAME =‘测试’”在1号线

由Hibernate生成完整的查询是:

选择project0_.PROJECT_ID如PROJECT1_60_,project0_.CL_ID如 CL2_60_,project0_.ATTACHMENT_LIST_ID如ATTACHMENT3_60_, project0_.TCL_ID如TCL4_60_,project0_.RL_ID如RL5_60_, project0_.NAME如NAME60_,project0_.DESCRIPTION如DESCRIPT7_60_, project0_.LA BEL如LABEL60_,project0_.ACTIVE如ACTIVE60_, project0_.CREATED_BY如CREATED10_60_,project0_.CREATED_ON如 CREATED11_60_,project0_.LAST_MODIFIED_BY如LAST12_60_, project0_.LAST_MODIFIED_ON如LAST13_60_,project0_.PROJECT_TYPE如 PROJECT14_60_,project0_.TA_SERVER_ID如TA15_60_从 squashtmdev.squashtm.project project0_其中NAME = '测试'

相关联的映射:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<!-- Generated 2 ao?t 2016 14:54:16 by Hibernate Tools 3.4.0.CR1 --> 
<hibernate-mapping> 
    <class name="com.classes.Project" table="project" catalog="squashtmdev"> 
     <id name="projectId" type="java.lang.Long"> 
      <column name="PROJECT_ID" /> 
      <generator class="identity" /> 
     </id> 
     <many-to-one name="campaignLibrary" class="com.classes.CampaignLibrary" fetch="select"> 
      <column name="CL_ID" /> 
     </many-to-one> 
     <many-to-one name="attachmentList" class="com.classes.AttachmentList" fetch="select"> 
      <column name="ATTACHMENT_LIST_ID" not-null="true" /> 
     </many-to-one> 
     <many-to-one name="testCaseLibrary" class="com.classes.TestCaseLibrary" fetch="select"> 
      <column name="TCL_ID" /> 
     </many-to-one> 
     <many-to-one name="requirementLibrary" class="com.classes.RequirementLibrary" fetch="select"> 
      <column name="RL_ID" /> 
     </many-to-one> 
     <property name="name" type="string"> 
      <column name="NAME" not-null="true" /> 
     </property> 
     <property name="description" type="string"> 
      <column name="DESCRIPTION" /> 
     </property> 
     <property name="label" type="string"> 
      <column name="LABEL" /> 
     </property> 
     <property name="active" type="boolean"> 
      <column name="ACTIVE" not-null="true" /> 
     </property> 
     <property name="createdBy" type="string"> 
      <column name="CREATED_BY" length="50" not-null="true" /> 
     </property> 
     <property name="createdOn" type="timestamp"> 
      <column name="CREATED_ON" length="19" not-null="true" /> 
     </property> 
     <property name="lastModifiedBy" type="string"> 
      <column name="LAST_MODIFIED_BY" length="50" /> 
     </property> 
     <property name="lastModifiedOn" type="timestamp"> 
      <column name="LAST_MODIFIED_ON" length="19" /> 
     </property> 
     <property name="projectType" type="char"> 
      <column name="PROJECT_TYPE" length="1" not-null="true" /> 
     </property> 
     <property name="taServerId" type="java.lang.Long"> 
      <column name="TA_SERVER_ID" /> 
     </property> 
     <set name="testCaseLibraryNodes" table="test_case_library_node" inverse="true" lazy="true" fetch="select"> 
      <key> 
       <column name="PROJECT_ID" /> 
      </key> 
      <one-to-many class="com.classes.TestCaseLibraryNode" /> 
     </set> 
     <set name="campaignLibraryNodes" table="campaign_library_node" inverse="true" lazy="true" fetch="select"> 
      <key> 
       <column name="PROJECT_ID" /> 
      </key> 
      <one-to-many class="com.classes.CampaignLibraryNode" /> 
     </set> 
     <set name="projectFilterEntries" table="project_filter_entry" inverse="true" lazy="true" fetch="select"> 
      <key> 
       <column name="PROJECT_ID" not-null="true" /> 
      </key> 
      <one-to-many class="com.classes.ProjectFilterEntry" /> 
     </set> 
     <set name="requirementLibraryNodes" table="requirement_library_node" inverse="true" lazy="true" fetch="select"> 
      <key> 
       <column name="PROJECT_ID" /> 
      </key> 
      <one-to-many class="com.classes.RequirementLibraryNode" /> 
     </set> 
    </class> 
</hibernate-mapping> 

任何想法,为什么发生这种情况?

+0

我认为问题是:squashtmdev.squashtm.project,squashtmdev是db,squashtm是表,什么是.project? –

+0

squashtm是数据库即时通讯发送查询,项目是表和squashtmdev是我用来生成休眠类的数据库(我有同样的问题与数据库squashtm生成,他们都有相同的数据模型) – GoZ

+0

这是这个'from com.classes.Project where NAME ='test''你正在使用的确切查询? “测试”是一个变量? – Julian

回答

0

这是我固定我的问题:

1 - 通过使用配置文件中的hibernate.default_catalog财产和再生类删除的HBM文件目录。

2 - 那么,如果它不工作,现在的错误是could not find the table yourDatabase.yourTable或使用HQL编辑yourDatabase.yourTable is not mapped尝试删除table="yourTable"在相关HBM文件

我'不知道为什么我必须这样做, 我希望它会帮助