1

mysql からデータベースをバックアップできる、windows-7 で簡単な Java アプリケーションを作成しようとしています。mysql base path が必要です。JPQLを使ってみた

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("BackupRestoreMysqlDatabasePU");
    EntityManager em = emf.createEntityManager();
    String path = em.createQuery("SELECT @@basedir").getSingleResult().toString();
    System.out.println("My Database Path::" + path);

実行すると、次のエラーが表示されます。

 Exception in thread "main" java.lang.IllegalArgumentException: An exception occurred     while creating a query in EntityManager: 
 Exception Description: Syntax error parsing [SELECT @@basedir]. 
 [16, 16] A select statement must have a FROM clause.
 [7, 16] The identification variable '@@basedir' is not following the rules for a Java identifier.
       at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1585)
       atJava Result: 1

私を助けてください。

4

1 に答える 1

0
SELECT @@basedir

これは SQL だけでなく、MySQL 固有の SQL です。明らかに、有効な JPQL ではありません。JPQL は常にエンティティと連携し、データベースに依存しない言語です。

ネイティブ クエリを使用します。

于 2013-08-17T12:23:22.713 に答える