2016-10-12 1 views
0

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!

+0

Werfen Sie einen Blick in die Eigenschaft: 'javax.persistence.schema-generation.database.action' – sanastasiadis

+0

Und was Sie tun Schluss mit dem Betrachten von JEDEM JPA-Tutorial, das den Namen der Persistenzeinheit deutlich darin zeigt? –

Antwort

1

Was Sie brauchen, ist die Angabe der persistance-unit Namen, wie Sie die EntityManagerFactory schaffen:

factory = Persistence.createEntityManagerFactory("todos"); 
EntityManager em = factory.createEntityManager(); 
Verwandte Themen