Я хочу, чтобы мой контейнер JavaEE создавал или обновлял таблицы автоматически. У меня есть проект EJB, а в качестве Dbms я использую MySQL. Мой сервер приложений - Glassfish. Я использую Hibernate как провайдера. Но таблицы, где не создавать. Если я вручную создаю таблицы, все работает нормально (сохраняются, сливаются, удаляются). Вот мой persistence.xmlEJB с поставщиком Hibernate dosen't create Таблица
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="AVS-WEB" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>jdbc/__avs</jta-data-source>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/avs" />
<property name="javax.persistence.jdbc.user" value="*****" />
<property name="javax.persistence.jdbc.password" value="******" />
<!--Hibernate properties -->
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
</properties>
</persistence-unit>
</persistence>
И это мое исключение, если таблица недоступна.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Таблица 'avs.kunde' не существует
Вот мой класс Kunde
package de.abs.ejb.bean;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table(name="kunde")
public class Kunde implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(
name="KUNDE_ID_GENERATOR",
sequenceName="AVS_KUNDE",
schema="AVS",
allocationSize=1,
initialValue=1)
@GeneratedValue(
strategy=GenerationType.SEQUENCE,
generator="KUNDE_ID_GENERATOR")
private Long id;
private String email;
private Long kundennummer;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Long getKundennummer() {
return kundennummer;
}
public void setKundennummer(Long kundennummer) {
this.kundennummer = kundennummer;
}
}
Спасибо, теперь это работает! – user3515460