簡體   English   中英

獲取異常:org.hibernate.exception.sqlgrammarexception

[英]Getting Exception : org.hibernate.exception.sqlgrammarexception

嗨,我正在實現hibernate ,當我嘗試插入一條新記錄時,獲取異常org.hibernate.exception.sqlgrammarexception

我的hibernate.cfg.xml文件:

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_db</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">system</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="hbm2ddl.auto">create</property>
        <mapping class="com.hib.UserDetails"/>
    </session-factory>
</hibernate-configuration>

如果我改變了

<property name="hbm2ddl.auto">update</property>
            <mapping class="com.hib.UserDetails"/>

它起作用了,但是我必須手動創建表。 可能是什么問題?

尋找您要引發SQL / HQL查詢的代碼段。 在這里,您可能會發現一些簡單而又難以發現的錯誤,例如拼寫錯誤的命令等。 這就是為什么SQL“語法”異常

檢查映射類“ UserDeatails”。

手動創建的表和UserDetails映射類之間不匹配。

Column_Names,Id,Constraints等可能不匹配

檢查表中的列名,並與bean中@column批注中的列名匹配。 最可能是其列不匹配。

您能否發布異常的Stacktrace,如果您可以發布將用戶添加到數據庫的代碼,那也會有所幫助。 數據庫表的列名和聲明的變量可能是一個問題。

<property name="show_sql">true</property>
<property name="format_sql">true</property>

這些必須正在生成SQL語句,請檢查“生成的SQL語句”中是否有錯誤。 發布SQL也可能有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM