• 注解-单向一对多演示


    首先定义2个实体类:Cate.java和Sub.java

    单向一对多:一方有集合属性,包含多个多方,而多方没有一方的引用

     1 package com.yztc.app.entity;
     2 
     3 import javax.persistence.*;
     4 import java.util.Set;
     5 
     6 @Entity
     7 @Table(name = "TB_CATE")
     8 public class Cate {
     9     @Id
    10     @GeneratedValue//用于定义主键生成策略
    11     @Column(name = "CID",length = 10)
    12     private Long cid;
    13     @Column(name = "NAME",length = 64)
    14     private String name;
    15     @OneToMany(cascade = CascadeType.ALL)
    16     @JoinColumn(name = "CID")
    17     private Set<Sub> subs;
    18 
    19     public Set<Sub> getSubs() {
    20         return subs;
    21     }
    22 
    23     public void setSubs(Set<Sub> subs) {
    24         this.subs = subs;
    25     }
    26 
    27     public Long getCid() {
    28         return cid;
    29     }
    30 
    31     public void setCid(Long cid) {
    32         this.cid = cid;
    33     }
    34 
    35     public String getName() {
    36         return name;
    37     }
    38 
    39     public void setName(String name) {
    40         this.name = name;
    41     }
    42 
    43     public Cate() {
    44     }
    45 
    46     public Cate(String name) {
    47         this.name = name;
    48     }
    49 }
     1 package com.yztc.app.entity;
     2 
     3 import javax.persistence.*;
     4 
     5 @Entity
     6 @Table(name = "TB_SUB")
     7 public class Sub {
     8     @Id
     9     @GeneratedValue//用于定义主键生成策略
    10     @Column(name = "SID",length = 10)
    11     private Long sid;
    12     @Column(name = "NAME",length = 64)
    13     private String name;
    14 
    15 
    16     public Sub() {
    17     }
    18 
    19     public Long getSid() {
    20 
    21         return sid;
    22     }
    23 
    24     public void setSid(Long sid) {
    25         this.sid = sid;
    26     }
    27 
    28     public String getName() {
    29         return name;
    30     }
    31 
    32     public void setName(String name) {
    33         this.name = name;
    34     }
    35 
    36     public Sub(String name) {
    37         this.name = name;
    38     }
    39 }

    二.单元测试:

     1 package com.yztc.test;
     2 
     3 
     4 import com.yztc.app.entity.Cate;
     5 import com.yztc.app.entity.Sub;
     6 import org.hibernate.Session;
     7 import org.hibernate.SessionFactory;
     8 import org.hibernate.Transaction;
     9 import org.hibernate.cfg.Configuration;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import java.util.HashSet;
    15 import java.util.Set;
    16 
    17 public class TestOneToMany {
    18 
    19     private SessionFactory sf;
    20     private Session session;
    21 
    22     @Before
    23     public void init(){
    24         sf = new Configuration().configure().buildSessionFactory();
    25         session = sf.openSession();
    26 
    27     }
    28     //测试一对多单向
    29     @Test
    30     public void testSave(){
    31         Transaction transaction = session.beginTransaction();
    32         Cate cate = new Cate("手机");
    33         Set<Sub> sets = new HashSet<>();
    34         for (int i = 0; i < 10; i++) {
    35             Sub sub = new Sub("魅族" + i);
    36             sets.add(sub);
    37             session.save(sub);
    38         }
    39        cate.setSubs(sets);
    40         session.save(cate);
    41         transaction.commit();
    42 
    43 
    44     }
    45     @After
    46     public void destory(){
    47         session.close();
    48     }
    49 }
  • 相关阅读:
    第03组 Alpha冲刺 总结
    第03组 Alpha冲刺 (6/6)
    第03组 Alpha冲刺 (5/6)
    第03组 Alpha冲刺 (4/6)
    第03组 Alpha冲刺 (3/6)
    第03组 Alpha冲刺 (2/6)
    第03组 Alpha冲刺 (1/6)
    第03组(63) 需求分析报告
    第03组(63) 团队展示
    第09组 Alpha冲刺 总结
  • 原文地址:https://www.cnblogs.com/1218-mzc/p/7663396.html
Copyright © 2020-2023  润新知