2016-08-02 15 views
0

Ich versuche, eine Hibernate-Abfrage zu verwenden, tun query.uniqueResult() meine Abfrage enthältFehler in SQL-Syntax überwintern mit

von com.classes.Project where name = 'test'

Aber ich Erhalte einen Fehler:

Sie haben einen Fehler in Ihrer SQL-Syntax; das Handbuch, dass zu Ihrer MySQL-Server-Version entspricht, die für die richtige Syntax in der Nähe zu verwenden '.project project0_ where name = 'test'' at line 1

Die vollständige Abfrage von Hibernate generiert wird:

wählen project0_.PROJECT_ID als PROJECT1_60_, project0_.CL_ID als CL2_60_, project0_.ATTACHMENT_LIST_ID als ATTACHMENT3_60_, project0_.TCL_ID als TCL4_60_, project0_.RL_ID als RL5_60_, project0_.NAME als NAME60_, project0_.DESCRIPTION als DESCRIPT7_60_, project0_.LA BEL als LABEL60_, project0_.ACTIVE als ACTIVE60_, project0_.CREATED_BY als CREATED10_60_, project0_.CREATED_ON als CREATED11_60_, project0_.LAST_MODIFIED_BY als LAST12_60_, project0_.LAST_MODIFIED_ON als LAST13_60_, project0_.PROJECT_TYPE als PROJECT14_60_, project0_.TA_SERVER_ID als TA15_60_ aus squashtmdev.squashtm.project project0_ where name = 'test'

Assoziierte Mapping:

<?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> 

Irgendwelche Ideen, warum dies geschieht?

+0

Ich denke, das Problem ist: squashtmdev.squashtm.project, squashtmdev ist die db, squashtm ist die Tabelle, was ist .project? –

+0

squashtm ist die db im Senden der Abfrage zu, Projekt ist die Tabelle und squashtmdev ist die db ich verwendet, um die Hibernate-Klassen zu generieren (Ich hatte das gleiche Problem mit der Datenbank squashtm generieren, sie beide haben das gleiche Datenmodell) – GoZ

+0

Ist dies 'from com.classes.Project wo NAME = 'test'die genaue Abfrage, die Sie verwenden? Wenn "Test" eine Variable ist? – Julian

Antwort

0

Dies ist, wie ich mein Problem behoben:

1 - Entfernen Sie den Katalog auf den hbm Dateien mithilfe des hibernate.default_catalog Eigenschaft in der Konfigurationsdatei und Regenerieren der Klassen.

2 - Dann, wenn es nicht funktioniert und der Fehler ist jetzt could not find the table yourDatabase.yourTable oder yourDatabase.yourTable is not mapped mit HQL-Editor versuchen, die table="yourTable" in der betreffenden Datei hbm

Ich bin nicht sicher zu entfernen, warum ich zu tun hatte, dass , Ich hoffe, es wird helfen