Ich arbeite an Schulprojekt, wo ich JPA verwenden muss. Ich habe einige Schema wie folgt aus:Wie mache ich Java JPA um Entitäten zu erstellen?
Customer.java
@Data
@Entity(name = "CUSTOMER")
public class Customer {
@Id
@Column(name = "CUSTOMER_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private long customerId;
@Column(name = "NAME")
private String name;
@Column(name = "SURNAME")
private String surname;
@Column(name = "STREET")
private String street;
@Column(name = "CITY")
private String city;
@Column(name = "ZIP_CODE")
private String zipCode;
@Column(name = "COUNTRY")
private String country;
@OneToMany(mappedBy="customer",targetEntity=Order.class, fetch= FetchType.EAGER)
private Collection orders;
}
Und Order.java
@Data
@Entity(name = "ORDER")
public class Order {
@Id
@Column(name = "ORDER_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private long orderId;
@Column(name = "CUSTOMER_ID")
@ManyToOne(optional=false)
@JoinColumn(name="CUSTOMER_ID",referencedColumnName="CUSTOMER_ID")
private long customerId;
@Column(name = "DATE_SHIPPED")
private Boolean dateShipped;
@Column(name = "ORDER_DATE")
private Date orderDate;
@Column(name = "STATUS")
private Date status;
}
Jetzt habe ich definiert persistance.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<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" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="todos" transaction-type="RESOURCE_LOCAL">
<class>b.model.Customer</class>
<class>b.model.Order</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="javax.persistence.jdbc.url"
value="jdbc:derby://localhost:1527/baza;create=true" />
</properties>
</persistence-unit>
</persistence>
Und jetzt bin ich an dem Ort fest, wo ich keine Ahnung habe, wie man die EntityManager
initialisiert, um tatsächlich meine persistance.xml
zu lesen, um eine Verbindung zu meiner Datenbank herzustellen, und die gegebenen Entitäten zu erstellen. Ich habe folgende versucht:
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(....);
EntityManager em = factory.createEntityManager();
}
Aber um ehrlich zu sein, ich weiß nicht wirklich, was in den Konstruktor der createEntityManagerFactor()
Methode gehen sollte.
Jede Hilfe ist mehr als willkommen!
Werfen Sie einen Blick in die Eigenschaft: 'javax.persistence.schema-generation.database.action' – sanastasiadis
Und was Sie tun Schluss mit dem Betrachten von JEDEM JPA-Tutorial, das den Namen der Persistenzeinheit deutlich darin zeigt? –