2016-07-28 3 views
1

jdbcで実行されるmysqlクエリで実行される、以下の列を持つリストを取得するためのhibernateクエリの記述方法。私のメインクラスでHQLクエリを作成する方法を私に教えてください2つのテーブルを結合し、ハイバネートで反復する方法

親エンティティ

@Entity 
@Table(name = "parent_info") 
public class ParentDTO { 
    @Id 
    @GenericGenerator(name = "j", strategy = "increment") 
    @GeneratedValue(generator = "j") 
    @Column(name = "P_ID") 
    private int p_id; 

    @Column(name = "P_NAME") 
    private String p_name; 

    @Column(name = "P_PHONE") 
    private String p_phone; 

    @Column(name = "P_EMAIL") 
    private String p_email; 

    @Column(name = "REF_ID") 
    private String ref_id; 

    @OneToMany(cascade={CascadeType.ALL}) 
    @JoinColumn(name="student_id") 

    private List<StudentDTO> students; 


    public List<StudentDTO> getStudents() { 
     return students; 
    } 

    public void setStudents(List<StudentDTO> students) { 
     this.students = students; 
    } 

    public int getP_id() { 
     return p_id; 
    } 

    public void setP_id(int p_id) { 
     this.p_id = p_id; 
    } 

    public String getP_name() { 
     return p_name; 
    } 

    public void setP_name(String p_name) { 
     this.p_name = p_name; 
    } 

    public String getP_phone() { 
     return p_phone; 
    } 

    public void setP_phone(String p_phone) { 
     this.p_phone = p_phone; 
    } 

    public String getP_email() { 
     return p_email; 
    } 

    public void setP_email(String p_email) { 
     this.p_email = p_email; 
    } 

    public String getRef_id() { 
     return ref_id; 
    } 

    public void setRef_id(String ref_id) { 
     this.ref_id = ref_id; 
    } 


} 

学生Entityクラス

@Entity 
@Table(name = "student_info") 
public class StudentDTO { 
    @Id 
    @GenericGenerator(name = "j", strategy = "increment") 
    @GeneratedValue(generator = "j") 
    @Column(name = "S_ID") 
    private int s_id; 

    @Column(name = "S_NAME") 
    private String s_name; 

    @Column(name = "S_PHONE") 
    private String s_phone; 

    @Column(name = "S_EMAIL") 
    private String s_email; 

    @Column(name = "REF_ID") 
    private String ref_id; 

    @Column(name = "S_CLASS_NAME") 
    private String s_class_name; 



    @ManyToOne 
    @JoinColumn(name="parent_id") 
    private ParentDTO parent; 




    public ParentDTO getParent() { 
     return parent; 
    } 

    public void setParent(ParentDTO parent) { 
     this.parent = parent; 
    } 

    public int getS_id() { 
     return s_id; 
    } 

    public void setS_id(int s_id) { 
     this.s_id = s_id; 
    } 

    public String getS_name() { 
     return s_name; 
    } 

    public void setS_name(String s_name) { 
     this.s_name = s_name; 
    } 

    public String getS_phone() { 
     return s_phone; 
    } 

    public void setS_phone(String s_phone) { 
     this.s_phone = s_phone; 
    } 

    public String getS_email() { 
     return s_email; 
    } 

    public void setS_email(String s_email) { 
     this.s_email = s_email; 
    } 

    public String getRef_id() { 
     return ref_id; 
    } 

    public void setRef_id(String ref_id) { 
     this.ref_id = ref_id; 
    } 

    public String getS_class_name() { 
     return s_class_name; 
    } 

    public void setS_class_name(String s_class_name) { 
     this.s_class_name = s_class_name; 
    } 

} 

メインクラス

public class Test { 

    public static void main(String[] args) { 
     Session session = null; 
     Transaction tx = null; 
     List<StudentDTO> groupList = null; 
     try { 
      SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); 
      session = sessionFactory.openSession(); 
      session.beginTransaction(); 


      session.getTransaction().commit(); 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } finally { 
      session.close(); 
     } 
    } 
} 
PT parent_info pt.REF_ID = st.REF_IDどこst.S_CLASS_TO_JOIN = 10でST student_info参加からJDBC

で実行

私のSQLクエリはpt.P_MOBILE、pt.P_EMAIL、st.S_FIRSTNAME、st.REF_IDを選択します;

+0

あなたは – Jens

+0

はあなたが@ ManyToOne'と '@oneTo Many'が –

+0

読むを行う方法expalinことができますあなたのエンティティとの関係をモデル化する必要があります存在しない – Jens

答えて

0
String query="paste your query here "; 
List<Object[]> objects = session.createSQLQuery(query).list(); 
       ListIterator<Object[]> iterator = objects.listIterator(); 
       while (iterator.hasNext()) { 
        Object[] object = (Object[]) iterator.next(); 

        int firstcolumn=(Integer) object[0]; 
        int secondcolumn=(Integer) object[1]; 

        } 
+0

私はその表「sms.parentsdto」を示す親クラスを設定doesnの'についてこの –

関連する問題