Hibernate Automatische Schema erstellung

Dieses Thema Hibernate - Automatische Schema erstellung im Forum "Data Tier" wurde erstellt von denis7788, 28. Aug. 2015.

Thema: Automatische Schema erstellung Hallo, wie kann ich denn automatisch Schemata erstellen lassen. In meiner persistance.xml habe ich die property...

  1. Hallo,

    wie kann ich denn automatisch Schemata erstellen lassen. In meiner persistance.xml habe ich die property hibernate.hbm2ddl.auto auf create gesetzt. Trotzdem wird mir beim Ausführen der Fehler angezeigt, dass die Datenbanktabellen fehlen.
    Was muss ich denn noch ergänzen, damit es funktioniert?

    persistance.xml:
    Code (XML):

    <?xmlversion="1.0"encoding="UTF-8"?>

    <persistenceversion="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-unitname="CustomerManagementEJB">

    <jta-data-source>jdbc/customers</jta-data-source>


    <properties>

    <propertyname="hibernate.hbm2ddl.auto"value="create"/>

    <propertyname="hibernate.show_sql"value="true"/>

    </properties>


    </persistence-unit>

    </persistence>
     
    Customer.java (getter und setter habe ich weggelassen)
    Code (Java):

    @Entity
    @JsonIgnoreProperties(ignoreUnknown = true)
    public class Customer {
       
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int id;
        private String firstName;
        private String lastName;
       
        @OneToMany(cascade=CascadeType.ALL, fetch= FetchType.EAGER, orphanRemoval=true)
        private List<Address> addresses;

    }
     
    Address.java
    Code (Java):

    @Entity
    @JsonIgnoreProperties(ignoreUnknown = true)
    public class Address {
       
       
        private int id;
        private String street;
        private String number;
        private String zip;
        private String city;
        private String country;
       

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        public int getId() {
            return id;
        }
       
    }
     
     
  2. Vielleicht hilft dir das Java-Tutorial weiter. Hier klicken --> (Klick)
  3. Dir fehlt auf jeden Fall das mapping in der persistence.xml

    Code (Text):

    <!-- Persistence classes -->
    <mapping class="dein.package.name.Customer"/>
    <mapping class="dein.package.name.Address"/>
     
  4. Danke für die Antwort!
    So weit ich weiß, brauche ich kein explizites Mapping in der persistance.xml wen ich für JPA die Option "Discover annotated classes automatically" angebe. Damit müsste das Mapping ja intern stattfinden, oder ist das falsch?
     
  5. Schau dir jetzt hier den Kurs an und lernen Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)