2013-05-21 23 views
0

我正在嘗試使用JPASQL ServerEclipse有很好的工具來映射數據庫中的實體,反之亦然。爲此,我需要將連接關聯到JPA項目。Eclipse JPA工具無法加載SQL Server的模式元數據

所以我在這個數據庫上創建了一個數據庫(命名爲「rowcount」)和一個表。然後,當我進入Eclipse時,打開JPA透視圖,登錄數據庫(數據源瀏覽器/數據庫連接),我看不到與此特定數據庫關聯的任何模式。

尋找在Eclipse中的「錯誤日誌」的觀點,我有以下錯誤,每次我的「架構」樹視圖項點擊的Eclipse:

eclipse.buildId=M20130204-1200 
java.version=1.7.0_15 
java.vendor=Oracle Corporation 
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=pt_BR 
Framework arguments: -product org.eclipse.epp.package.jee.product 
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product 

Error 
Tue May 21 10:34:42 BRT 2013 
com.microsoft.sqlserver.jdbc.SQLServerException 

com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'rowcount'. 
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) 
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515) 
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:792) 
    at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689) 
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) 
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) 
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) 
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616) 
    at org.eclipse.datatools.connectivity.sqm.internal.core.connection.StatementAdapter.executeQuery(StatementAdapter.java:73) 
    at org.eclipse.datatools.enablement.msft.internal.sqlserver.loaders.SQL2005SchemaLoader.createResultSet(SQL2005SchemaLoader.java:53) 
    at org.eclipse.datatools.connectivity.sqm.loader.JDBCSchemaLoader.loadSchemas(JDBCSchemaLoader.java:111) 
    at org.eclipse.datatools.connectivity.sqm.core.rte.jdbc.JDBCCatalog.loadSchemas(JDBCCatalog.java:101) 
    at org.eclipse.datatools.connectivity.sqm.core.rte.jdbc.JDBCCatalog.getSchemas(JDBCCatalog.java:64) 
    at org.eclipse.datatools.connectivity.sqm.server.internal.ui.explorer.providers.content.layout.vnode.ServerExplorerVNodeContentProviderNav.displaySchemaNodeChildren(ServerExplorerVNodeContentProviderNav.java:126) 
    at org.eclipse.datatools.connectivity.sqm.server.internal.ui.explorer.providers.content.layout.AbstractOnDemandContentProviderNav.getChildren(AbstractOnDemandContentProviderNav.java:169) 
    at org.eclipse.datatools.connectivity.sqm.server.internal.ui.explorer.providers.content.layout.AbstractOnDemandContentProviderNav.getChildren(AbstractOnDemandContentProviderNav.java:243) 
    at org.eclipse.datatools.connectivity.sqm.server.internal.ui.explorer.providers.content.layout.AbstractLayoutProviderNav.getChildren(AbstractLayoutProviderNav.java:85) 
    at org.eclipse.datatools.connectivity.sqm.server.internal.ui.explorer.providers.content.impl.ServerExplorerContentProviderNav.load(ServerExplorerContentProviderNav.java:153) 
    at org.eclipse.datatools.connectivity.sqm.server.internal.ui.explorer.loading.LoadingJob.run(LoadingJob.java:43) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 

我使用的是最新的sqljdbc4。 jar和「JPA Driver屬性」中的「Microsoft SQL Server 2008 JDBC驅動程序」。

此錯誤阻止我將應用程序部署到EAR文件中。即使我設法Weblogic上手動部署,應用程序失敗,原因如下:

openjpa-1.1.1-SNAPSHOT-r422266:957329 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing the query filter "SELECT N FROM Note N". Error message: The name "Note" is not a recognized entity or identifier. Known entity names: [] 

奇怪的是,「主」數據庫顯示了一些它的對象和模式。在SQL Server中,JDBC驅動程序或Eclipse中是否有解決方法?

+0

將數據庫命名爲rowcount以外的其他名稱。這是SQL Server中的保留關鍵字。 http://msdn.microsoft.com/en-us/library/ms189822.aspx –

+0

正是我所做的。我重命名後,應用程序運行良好。有時你只需要進行一些睡眠並嘗試一些不同的東西。 –

回答

0

對我感到羞恥。問題是由於數據庫名稱是SQL Server的保留字而引起的。我重命名後,它運行良好。

查看上面的意見,對問題。

對於所有遇到真正問題而沮喪的人,我表示誠摯的歉意。

相關問題