用户类:Customer
import lombok.Data;
import javax.persistence.*;
@Data
@Entity(name = "ManyToOne_CUTOMERS")
@Table(name = "ManyToOne_CUTOMERS")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "LAST_NAME", length = 50, nullable = false)
private String lastName;
private String email;
}
订单类:Order
import lombok.Data;
import javax.persistence.*;
@Data
@Entity(name = "ManyToOne_ORDERS")
@Table(name = "ManyToOne_ORDERS")
public class Order {
@Id
@GeneratedValue
private Integer id;
@Column(name = "ORDER_NAME")
private String orderName;
// 映射单向 n-1 的关联关系
// 使用 @JoinColumn 来映射外键
// 使用 @ManyToOne 来映射多对一的关联关系
// 可使用 @ManyToOne 的 fetch 属性来修改默认的关联属性的加载策略,在左外连接和两条SQL间切换
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CUSTOMER_ID")
private Customer customer;
}
测试
建表
![]()
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
public class JPAyingshe {
private EntityManagerFactory entityManagerFactory;
private EntityManager entityManager;
private EntityTransaction transaction;
@Before
public void init() {
entityManagerFactory = Persistence.createEntityManagerFactory("jpaname");
entityManager = entityManagerFactory.createEntityManager();
transaction = entityManager.getTransaction();
transaction.begin();
}
@After
public void destroy() {
transaction.commit();
entityManager.close();
entityManagerFactory.close();
}
@Test
public void createTable() {}
}
View Code