我正在尝试在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
请帮帮我。
答案 0 :(得分:0)
SELECT @@basedir
这不仅是SQL,而且是特定于MySQL的SQL。显然,它不是有效的JPQL。 JPQL始终与实体一起使用,并且是与数据库无关的语言。
使用原生查询。