0
將應用程序從Oracle移植到SQLServer。第一次訪問數據庫時發生此錯誤(org.hibernate.exception.SQLGrammarException:無法執行查詢)。「org.hibernate.exception.SQLGrammarException:無法執行查詢」在sqlserver上但在Oracle上沒問題?
這是(消隱)訪問的代碼: -
Session session = serviceLocator.getSessionFactory().openSession();
List<BaseTemplate> baseTemplateList = null;
Query query = null;
try
{
query = session.createQuery("from BaseTemplate");
baseTemplateList = query.list(); <<<<< Exception thrown here
}
etc
bean代碼: -
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import com.iontrading.reportserver.database.model.IBaseTemplate;
@Entity
@Table(name = "BASETEMPLATE")
public class BaseTemplate implements IBaseTemplate{
private Integer id;
@Column(name="TEMPLATENAME")
private String templateName;
@Id
@GeneratedValue
@Column(name = "TEMPLATEID")
@Override
/** {@inheritDoc} */
public Integer getId() { return id; }
@Override
/** {@inheritDoc} */
public void setId(Integer id) { this.id = id; }
...剪斷<> } 表創建DDL CREATE TABLE「DBO 「。」BASETEMPLATE「 ( TEMPLATEID INT PRIMARY KEY NOT NULL, ... TEMPLATENAME VARCHAR(255) )
點,可能會或可能不相關: -
- 這工作正常,如果數據庫是Oracle。
- 表名和bean類的名稱不匹配,但使用@Table
- 列名不匹配的bean字段名稱,但使用@Column
- 主鍵是一個生成的值。
- 該bean的導入是JPA不休眠。
?任何想法,爲什麼我得到這個異常,或者我如何從休眠獲得更多信息將是非常有用的。 謝謝。