I am trying to make a simple Java application on windows-7 that can database backup from mysql. I need mysql base path . I tried using JPQL that is
EntityManagerFactory emf = Persistence.createEntityManagerFactory("BackupRestoreMysqlDatabasePU");
EntityManager em = emf.createEntityManager();
String path = em.createQuery("SELECT @@basedir").getSingleResult().toString();
System.out.println("My Database Path::" + path);
When I run it, show following error:
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
Please help me.
SELECT @@basedir
This not only is SQL, but it's MySQL-specific SQL. Obviously, it's not valid JPQL. JPQL works with entities, always, and is a database-agnostic language.
Use a native query.