В настоящее время я работаю над проектом веб-приложения, используя фреймворк java Play 2.3.2 и данные Spring jpa с использованием базы данных postgresql. Я установил образец игры из активатора под названием play-spring-data-jpa, и его можно найти здесь: play-spring-data-jpa
Проблема, с которой я столкнулся, заключается в автоматическом создании таблицы, эта функция по какой-то причине не работает, отображая следующую ошибку:
[error] o.h.t.h.SchemaUpdate - Unsuccessful: create table public.Person (id bigint generated by default as identity, firstname varchar(255), surname varchar(255), primary key (id))
[error] o.h.t.h.SchemaUpdate - ERROR: syntax error at or near "generated"
Position: 39
[info] play - Application started (Dev)
[error] o.h.u.JDBCExceptionReporter - ERROR: relation "public.person" does not exist
Position: 13
[error] play - Cannot invoke the action, eventually got an error: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not insert:[models.Person]
[error] application -
мой файл persistence.xml:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>DefaultDS</non-jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
мое приложение.conf:
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/MyTest"
db.default.user=postgres
db.default.password="2580"
db.default.jndiName=DefaultDS
applyEvolutions.default=true
Когда я создаю таблицу самостоятельно, все идет нормально. Я не хочу воссоздавать таблицу каждый раз, когда я ее удаляю.
Обновление: удаление Generated решило проблему. Однако идентификатор должен быть вставлен вручную! Как я могу автоматически сгенерировать идентификатор?
2-е обновление: проблема была решена с помощью этого ссылка на stackoverflow