JPA не обновляет базу данных SQL должным образом - PullRequest
0 голосов
/ 11 сентября 2018

Я новичок в использовании JPA, и у меня есть личный класс Entity, где я хочу отобразить некоторую информацию, сначала, когда я создал класс, у меня был установлен идентификатор

    @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

, который сгенерировал ID 51, где мой учитель сказал мне изменить его на:

    @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

так что это будет начинаться с 1, а затем складываться для каждого человека.

Теперь у меня есть класс java структуры, где я хочу удалять текущую базу данных для каждого нового экземпляра, когда я запускаю класс, и у меня есть этот код:

    public static void main(String[] args) 


{
    HashMap<String, Object> puProperties = new HashMap<>();

    puProperties.put("javax.persistence.sql-load-script-source", "Scripts/ClearDB.sql");
    Persistence.generateSchema("jpadb", puProperties);


    puProperties.remove("javax.persistence.sql-load-script-source");
    Persistence.generateSchema("jpadb", puProperties);
}

со скриптом как таковым:

drop database jpadb if exists;
create database jpadb;

вот ошибка, которую я получаю:

Internal Exception: 
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an 
error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near 'if exists' at line 1
Error Code: 1064
Call: drop database jpadb if exists;
Query: DataModifyQuery(sql="drop database jpadb if exists;")
[EL Warning]: 2018-09-11 16:14:41.361--ServerSession(2045766957)-- 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 
2.7.3.v20180807-4be1041): 
org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Can't create database      
'jpadb'; database exists
Error Code: 1007

Я не знаю, к чему относится синтаксическая ошибка?

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Измените ваше заявление об отбрасывании на

drop database if exists jpadb;

В сообщении об ошибке ясно, где ваше утверждение неверно,

Call: drop database jpadb if exists;
Query: DataModifyQuery(sql="drop database jpadb if exists;")
0 голосов
/ 11 сентября 2018

Используйте этот скрипт;

DROP DATABASE IF EXISTS jpadb; 

у вас есть ошибка snytax с записью drop database jpadb if exists;.Ваша проблема на самом деле о последовательности ключевых слов.Чтобы увидеть больше MySQL Drop Docs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...