JPA Hibernate таблица не существует - PullRequest
0 голосов
/ 25 мая 2018

У меня есть проблема, которую я изо всех сил пытался решить, но я никуда не попал.

Я использую JPA Hibernate для создания таблиц, но вместо создания таблицы он показывает мнеошибка:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: таблица 'escola.tab_alunos' не существует

Вот мой файл 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="banco" transaction-type="RESOURCE_LOCAL">
    <description>
    Persistence unit for the JPA tutorial of the Hibernate Getting Started Guide
    </description>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>org.halyph.sessiondemo.Event</class>

    <properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/escola" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="0000" />

        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
    </properties>
</persistence-unit>

А вот класс Aluno:

@Entity
@Table(name=“TAB_ALUNOS”)
@SequenceGenerator(name=“TAB_ALUNOS_PK”, sequenceName=“SEQ_ALUNOS_PK”, allocationSize=1)
public class Aluno {

    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="TAB_ALUNOS_PK")
    private Long id;

    @Column(length=10, nullable=false)
    private String matricula;

    @Column(length=100, nullable=false)
    private String nome;

    @Column(length=9 ,nullable=false)
    private String sexo;

    @Column(name="DATA_NASCIMENTO", length=10, nullable=false)
    private String dataNascimento;

    @Column(length=30, columnDefinition="DEFAULT 'Ativo'")
    private String situacao;

    // ....
 }

Есть идеи о том, как можно решить эту проблему?

Просто для записи, когда я впервые запустил проект, это работало просто отлично, но из-за ошибки, которую я допустил, мне пришлось сбросить таблицу, после того, как этот режим гибернации прекратил создавать таблицу, и теперь я ничего не могу сделать

Ответы [ 4 ]

0 голосов
/ 25 мая 2018

Я попытался изменить его на:

<property name="hibernate.hbm2ddl.auto" value="create" />

, и я также попытался изменить на:

<property name="hibernate.hbm2ddl.auto" value="create-drop" />

Ни один из этих двух не сработал.

0 голосов
/ 25 мая 2018

Изменение <property name="hibernate.hbm2ddl.auto" value="create" />

См. Здесь все возможные значения hbm2ddl.auto

Спящий режим hbm2ddl.auto возможные значения и что они делают?

0 голосов
/ 25 мая 2018

Ошибка появляется, потому что ваш persistance.xml был настроен для обновления таблиц.Во время первого запуска нет созданных таблиц, и, следовательно, обновлять нечего.

При первом запуске установите <property name="hibernate.hbm2ddl.auto" value="create" />, чтобы из вашего pojo можно было создать таблицу.Затем установите его обратно на <property name="hibernate.hbm2ddl.auto" value="update" />, чтобы ваши таблицы можно было обновлять вместо того, чтобы создавать при каждом запуске

0 голосов
/ 25 мая 2018

Изменить

<property name="hibernate.hbm2ddl.auto" value="update" />

до

<property name="hibernate.hbm2ddl.auto" value="create" />

Значение = "обновление" изменяет существующую таблицу, а значение = "создать"создает таблицу, но если таблица уже существует, она удаляет таблицу с данными и снова создает таблицу.

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