JAP映射关联关系

JAP映射关联关系

1. 单向多对一

Order(多)–>Customer(一)

关键点:

Order里有一个Customer的成员

 /**
     *@JoinColumn:来映射外键
     *@ManyToOne:映射多对一的关系 
     */
    @JoinColumn(name="customer_id")
    @ManyToOne(fetch=FetchType.LAZY)//使用懒加载
    public Customer getCustomer() {
        return customer;
    }
    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

1. Order.java:

package com.bart.jpa.beans;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Table(name="jpa_order")
@Entity
public class Order {
   

    @Override
    public String toString() {
        return "Order [id=" + id + ", name=" + name + ", customer="
                +customer + "]";
    }

    @Column(length=10,nullable=false)
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Id
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    @Column(name="o_name",length=20,nullable=false)
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    /**
     *@JoinColumn:来映射外键
     *@ManyToOne:映射多对一的关系 
     */
    @JoinColumn(name="customer_id")
    @ManyToOne(fetch=FetchType.LAZY)//使用懒加载
    public Customer getCustomer() {
        return customer;
    }
    public void setCustomer(Customer customer) {
        this.customer = customer;
    }
    private Integer id;
    private String name;
    private Customer customer;
    public Order(String name, Customer customer) {
        super();
        this.name = name;
        this.customer = customer;
    }
    public Order(String name) {
        super();
        this.name = name;
    }
    public Order() {
        super();
    }

}

2. Customer.java

package com.bart.jpa.beans;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

/**
 * 使用JPA的注解创建对应的数据表
 * @author hp
 *
 */
@Cacheable(true)
@Table(name="JPA_CUSTOMER")
@Entity
public class Customer {
   

    @Override
    public String toString() {
        return "Customer [id=" + id + ", lastName=" + lastName + ", email="
                + email + ", age=" + age + ", createTime=" + createTime
                + ", birth=" + birth + "]";
    }

    private Integer id;
    private String lastName;
    private String email;
    private Integer age;
    private Date createTime;
    private Date birth;

    //private Set<Order> orders= new HashSet<Order>(); 

    public Customer(String lastName, String email, Integer age,
            Date createTime) {
        super();
        this.lastName = lastName;
        this.email = email;
        this.age = age;
        this.createTime = createTime;
    }
    public Customer() {
        super();
    }

    @GeneratedValue(strategy=GenerationType.AUTO)//主键自动生成
    @Id
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }

    @Column(name="last_name",length=20,nullable=false)
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    @Column(length=30)
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    @Column(length=3)
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Temporal(TemporalType.DATE)//显示格式(yyyy-MM-dd)
    public Date getBirth() {
        return birth;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
    @Temporal(TemporalType.TIMESTAMP)
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Transient//工具方法,表示不需要映射为数据表的一个列
    public String getInfo(){
        return "lastName:"+lastName+",email:"+email;
    }

}

3.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值