• 单向一对多关系


    /**
     * 关系被维护端
     * @author Administrator
     *
     */
    @Entity
    @Table(name="orders")
    public class Order {
     private String orderid;
     private Float amount;
     private Set<OrderItem> orderitem=new HashSet<OrderItem>();
     
     @Id
     public String getOrderid() {
      return orderid;
     }
    
     @Column(nullable=false)
     public Float getAmount() {
      return amount;
     }
     public void setAmount(Float amount) {
      this.amount = amount;
     }
     /**
      * 在关系维护中,多的一方为关系维护端,关系维护端负责外键记录的更新。关系被维护端则没有权利更新外键
      * 的记录。
      * @return
      */
     //当注解以Many结尾时且需要关系维护,那么fetch的默认值为延迟加载;为One时,默认为立即加载。
     //mappedBy(与hibernate中的inverse意思相同,表示对方,所以mappedBy出现在关系被维护端)出现在关系被维护端中,表示关系被维护端在关系维护端中的属性。
     @OneToMany(cascade={CascadeType.ALL},fetch=FetchType.LAZY,mappedBy="order")
     public Set<OrderItem> getOrderitem() {
      return orderitem;
     }
     
     
     public void setOrderitem(Set<OrderItem> orderitem) {
      this.orderitem = orderitem;
     }
     /**
      * 添加订单项  由于Order是关系被维护端,因此不能更新外键的,外键维护必须是OrderItem
      * @param orderItem
      */
     public void addOrderItem(OrderItem orderItem){
      orderItem.setOrder(this); //一定要有这条语句,它是维护外键。
      orderitem.add(orderItem);
     }
    
    }
    
     
    
    @Entity
    public class OrderItem {
     private Integer id;
     private String productname;
     private Float price=0f;
     private Order order;
     /**
      * optional表示是否可选,如果为true,则为可选就是可以为null。如果为false,则为不可选就是不能为空
      * @JoinColumn(name="order_id"):表示外键的注解,name属性表示外键的名称
      */
     @ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
     @JoinColumn(name="order_id")
     public Order getOrder() {
      return order;
     }
     @Id @GeneratedValue
     public Integer getId() {
      return id;
     }
    
     @Column(length=40,nullable=false)
     public String getProductname() {
      return productname;
     }
     @Column(nullable=false)
     public Float getPrice() {
      return price;
     }
    }
  • 相关阅读:
    lsblk---列出所有可用块设备的信息,
    blkid---对系统块设备信息查询
    du---是对文件和目录磁盘使用的空间查看
    strings---对象文件或二进制文件中查找可打印的字符串
    which---查找并显示给定命令的绝对路径
    whereis---定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
    cd---切换工作目录
    cp---复制文件
    ls---显示文件目录各项信息
    pwd---以绝对路径的方式显示用户当前工作目录
  • 原文地址:https://www.cnblogs.com/lbangel/p/3022778.html
Copyright © 2020-2023  润新知