关系休眠出错



我需要这段代码的帮助,因为我无法很好地计算的关系

这是地图的类:

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;
    }
}

package primero;
// Generated 03-mar-2015 8:46:59 by Hibernate Tools 3.4.0.CR1
import java.util.HashSet;
import java.util.Set;
/**
 * Cursos generated by hbm2java
 */
public class Cursos implements java.io.Serializable {
    private int codCurso;
    private String nombre;
    private String profesor1;
    private String profesor2;
    private String profesor3;
    private Set<Estudiantes> estudianteses = new HashSet<Estudiantes>(0);
    public Cursos() {
    }
    public Cursos(int codCurso) {
        this.codCurso = codCurso;
    }
    public Cursos(int codCurso, String nombre, String profesor1,
            String profesor2, String profesor3, Set<Estudiantes> estudianteses) {
        this.codCurso = codCurso;
        this.nombre = nombre;
        this.profesor1 = profesor1;
        this.profesor2 = profesor2;
        this.profesor3 = profesor3;
        this.estudianteses = estudianteses;
    }
    public int getCodCurso() {
        return this.codCurso;
    }
    public void setCodCurso(int codCurso) {
        this.codCurso = codCurso;
    }
    public String getNombre() {
        return this.nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
        public String getProfesor1() {
        return this.profesor1;
    }
    public void setProfesor1(String profesor1) {
        this.profesor1 = profesor1;
    }
    public String getProfesor2() {
        return this.profesor2;
    }
    public void setProfesor2(String profesor2) {
        this.profesor2 = profesor2;
    }
    public String getProfesor3() {
        return this.profesor3;
    }
    public void setProfesor3(String profesor3) {
        this.profesor3 = profesor3;
    }
    public Set<Estudiantes> getEstudianteses() {
        return this.estudianteses;
    }
    public void setEstudianteses(Set<Estudiantes> estudianteses) {
        this.estudianteses = estudianteses;
    }
}

这就是问题的答案

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 HashSet(10000);//也许应该更大字符串;

下面这行应该从更改

 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()

相关内容

最新更新