Java 关系休眠错误
我需要这段代码的帮助我不能很好地计算关系 这是map的类:Java 关系休眠错误,java,hibernate,Java,Hibernate,我需要这段代码的帮助我不能很好地计算关系 这是map的类: package primero; // Generated 03-mar-2015 8:46:59 by Hibernate Tools 3.4.0.CR1 import java.util.HashSet; import java.util.Set; /** * Estudiantes generated by hbm2java */ public class Estudiantes implements java.io.Seri
package primero;
// Generated 03-mar-2015 8:46:59 by Hibernate Tools 3.4.0.CR1
import java.util.HashSet;
import java.util.Set;
/**
* Estudiantes generated by hbm2java
*/
public class Estudiantes implements java.io.Serializable {
private String dni;
private Estudiantes estudiantes;
private String nombre;
private String direccion;
private String poblacion;
private String telefono;
private Set<Estudiantes> estudianteses = new HashSet<Estudiantes>(0);
private Set<Cursos> cursoses = new HashSet<Cursos>(0);
public Estudiantes() {
}
public Estudiantes(String dni) {
this.dni = dni;
}
public Estudiantes(String dni, Estudiantes estudiantes, String nombre,
String direccion, String poblacion, String telefono,
Set<Estudiantes> estudianteses, Set<Cursos> cursoses) {
this.dni = dni;
this.estudiantes = estudiantes;
this.nombre = nombre;
this.direccion = direccion;
this.poblacion = poblacion;
this.telefono = telefono;
this.estudianteses = estudianteses;
this.cursoses = cursoses;
}
public String getDni() {
return this.dni;
}
public void setDni(String dni) {
this.dni = dni;
}
public Estudiantes getEstudiantes() {
return this.estudiantes;
}
public void setEstudiantes(Estudiantes estudiantes) {
this.estudiantes = estudiantes;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDireccion() {
return this.direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public String getPoblacion() {
return this.poblacion;
}
public void setPoblacion(String poblacion) {
this.poblacion = poblacion;
}
public String getTelefono() {
return this.telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public Set<Estudiantes> getEstudianteses() {
return this.estudianteses;
}
public void setEstudianteses(Set<Estudiantes> estudianteses) {
this.estudianteses = estudianteses;
}
public Set<Cursos> getCursoses() {
return this.cursoses;
}
public void setCursoses(Set<Cursos> cursoses) {
this.cursoses = cursoses;
}
}
这是解决问题的关键
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.hibernate.ObjectNotFoundException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import primero.*;
public class Main {
public static void main(String[] args) {
//BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
SessionFactory sesion = SessionFactoryUtil.getSessionFactory();
Session session = sesion.openSession();
//Transaction tx = session.beginTransaction();
try{
/*
System.out.println("Introduce el codigo del cliente: ");
short num=Short.parseShort(entrada.readLine());
System.out.println("\nDATOS DEL CLIENTE: "+num+"\n");
Clientes cliente = new Clientes();
cliente=(Clientes)session.load(Clientes.class, num);
*/
System.out.println("-------------------------------------------------------");
Estudiantes estu = new Estudiantes();
Query q = session.createQuery("from Estudiantes");
List <Estudiantes> lista = q.list();
Iterator <Estudiantes> iter = lista.iterator();
while(iter.hasNext()){
estu = iter.next();
System.out.println("Dni: "+estu.getDni()+", "+estu.getNombre());
System.out.println("Direccion: "+estu.getDireccion());
System.out.println("Representante: "+estu.getDni()+", "+estu.getNombre());
long count = (long) session.createQuery("select count(*) from Cursos where estudianteses="+estu.getEstudianteses()).uniqueResult();
System.out.println("Numero de cursos: "+count);
//===============================================================
Cursos curs=new Cursos();
Query q1 = session.createQuery("from Cursos");
List <Cursos> lista1 = q1.list();
Iterator <Cursos> iter1 = lista1.iterator();
while(iter1.hasNext()){
curs = iter1.next();
System.out.println(" "+curs.getCodCurso()+" ==> "+curs.getNombre()+": "+curs.getProfesor1()+", "+curs.getProfesor2()+", "+curs.getProfesor3());
}
System.out.println("-------------------------------------------------------");
}
}
catch(ObjectNotFoundException e){
System.out.println("No existe el cliente");
//e.printStackTrace();
}
catch(NullPointerException e){
System.out.println("Los datos son nulos");
//e.printStackTrace();
}
catch(NumberFormatException e){
System.out.println("El numero introducido no es valido");
//e.printStackTrace();
}
//tx.commit();
session.close();
System.exit(0);
}
}
我不能打印这门课的所有学生。我需要帮助。谢谢
Set lines=new HashSet10000;//也许应该更大一点
弦线 以下行应更改为
long count = (long) session.createQuery("select count(*) from Cursos where estudianteses="+estu.getEstudianteses()).uniqueResult();
对此
long count = (long) session.createSQlQuery("select count(*) from Cursos where estudianteses="+estu.getEstudianteses()).uniqueResult();
它必须是createSqlQuery编辑您的问题,并请在控制台中发布您在运行程序时得到的输出。。?
long count = (long) session.createSQlQuery("select count(*) from Cursos where estudianteses="+estu.getEstudianteses()).uniqueResult();