OneToMany 查询

一、数据库

-------------------------------------------------------------------------------------

user_inf

user_code    varchar    10    0    0    0    0    0    0        0        utf8    utf8_general_ci        -1    0
name    varchar    30    0    -1    0    0    0    0        0        utf8    utf8_general_ci        0    0
age    int    10    0    -1    0    0    0    0        0                    0    0

-----------------------------------------------------------------------
recorditem

id    int    11    0    0    0    0    0    0    0    0                    -1    0
record    int    11    0    -1    0    0    0    0        0                    0    0
user_code    varchar    10    0    -1    0    0    0    0        0        utf8    utf8_general_ci        0    0

user_inf 和 recorditem 之间通过外键 user_code关联

二、映射

user.java-----是One的一端

package Study.model;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="user_inf")
public class user {
    
    @Id
    private String user_code;
    private String name;
    private int age;
    @OneToMany
    @JoinColumn(name="user_code")
    private Set<record> records = new HashSet<record>();
    
    public String getUser_code() {
        return user_code;
    }
    public void setUser_code(String user_code) {
        this.user_code = user_code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public Set<record> getRecords() {
        return records;
    }
    public void setRecords(Set<record> records) {
        this.records = records;
    }
}

record.java ----是Many的一端
package Study.model;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="recorditem")
public class record {
    @Id
    private int id;
    private int record;
    private String user_code;
    
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getRecord() {
        return record;
    }
    public void setRecord(int record) {
        this.record = record;
    }
    
    public String getUser_code() {
        return user_code;
    }
    public void setUser_code(String user_code) {
        this.user_code = user_code;
    }   
}

调用测试 UserTest01.java

package Study.Action;

import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import Jargon.GetHibernateSession.JargonHibernate4Util;
import Study.model.record;
import Study.model.user;

public class UserTest01 {
    public static void main(String[] args){
        Session session = JargonHibernate4Util.currentSession();
        Transaction tx = session.beginTransaction();        
        user u = (user)session.get(user.class,"64765666");
        System.out.println(u.getName());
        System.out.println(u.getRecords().toString());

        //u.getRecords() 需要转换类型为 record 类,即 Many的一端
        for(record obj : u.getRecords()){
            System.out.println(obj.getRecord());            
        }
        JargonHibernate4Util.closeSession();
    }
    
}

你可能感兴趣的:(OneToMany 查询)