gpt4 book ai didi

java - 如何让Java JPA创建实体?

转载 作者:行者123 更新时间:2023-12-01 09:23:28 24 4
gpt4 key购买 nike

我正在做学校项目,需要使用 JPA。我有一些类似的架构:

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;
}

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;

}

现在,我已经定义了 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>

现在我被困在这个地方,我不知道如何初始化 EntityManager 来实际读取我的 persistance.xml 来连接到我的数据库,并且创建给定的实体。我尝试过以下方法:

private static EntityManagerFactory factory;

public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(....);
EntityManager em = factory.createEntityManager();
}

但说实话,我真的不知道 createEntityManagerFactor() 方法的构造函数中应该包含什么内容。

非常欢迎任何帮助!

最佳答案

您需要在创建EntityManagerFactory时指定persistance-unit名称:

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

关于java - 如何让Java JPA创建实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40007283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com