如何使用JPQL收集MySQL基本路径?

时间:2013-08-17 10:33:32

标签: java mysql jpql

我正在尝试在windows-7上创建一个可以从mysql进行数据库备份的简单Java应用程序。我需要mysql基本路径。我尝试使用

的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

请帮帮我。

1 个答案:

答案 0 :(得分:0)

SELECT @@basedir

这不仅是SQL,而且是特定于MySQL的SQL。显然,它不是有效的JPQL。 JPQL始终与实体一起使用,并且是与数据库无关的语言。

使用原生查询。