1
如何编写hibernate查询以获取在jdbc中执行的mysql查询中执行的下列列表。如何写HQL查询我的主类,请让我知道如何连接两个表并重复进入休眠状态
母实体
@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
@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();
}
}
}
在JDBC
执行
我的SQL查询选择pt.P_MOBILE,pt.P_EMAIL,st.S_FIRSTNAME,st.REF_ID从parent_info PT加入student_info ST上pt.REF_ID = st.REF_ID其中st.S_CLASS_TO_JOIN = 10 ;
你有你的实体 – Jens
可以expalin怎么办'@ ManyToOne'和'@oneTo Many' –
阅读关系模型不存在 – Jens