程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了尝试为实体添加标识符时遇到问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决尝试为实体添加标识符时遇到问题?

开发过程中遇到尝试为实体添加标识符时遇到问题的问题如何解决?下面主要结合日常开发的经验,给出你关于尝试为实体添加标识符时遇到问题的解决方法建议,希望对你解决尝试为实体添加标识符时遇到问题有所启发或帮助;

我正在尝试执行方法“borrarModulo()”,但是当该方法被调用时,它给了我一个奇怪的异常。我想出了如何更正映射,但现在 Netbeans 向我抛出此异常

尝试为实体添加标识符时遇到问题

文件代码:

UfNotas.java

package ufnotasORM;

import java.util.List;
import java.util.Scanner;
import ufnotas.Profesores;
import ufnotas.Alumnos;
import ufnotas.Modulos;
import java.util.inputMismatchException;
import org.hibernate.Session;
import ufnotas.NewHibernateUtil;
/**
 *
 * @author Lluis
 */
public class UfNotas {
    
    
    
    public static voID main(String[] args) {
        menuPrincipal();
    }
    
    public static voID menuPrincipal(){
        
        ufnotasORM miGestor = new ufnotasORM();
        Scanner sc = new Scanner(system.in);
        List<Profesores> pro;
        List<Alumnos> al;
        
        int menu = 5;
        String nombre;
        String user;
        String pass;
        boolean check = false;
        
        do{
            
        System.out.println("1.- Insertar un nuevo profesor");
        System.out.println("2.- Eliminar profesor");
        System.out.println("3.- ValIDar la enTrada de un Profesor");
        System.out.println("4.- ValIDar la enTrada de un Alumno");
        System.out.println("0.- Salir");
        
        menu = sc.nextInt();
        
        switch(menu){
            case 1:
                System.out.println("Inserte el nombre del profesor :");
                nombre = sc.next();
                System.out.println("Inserte el nombre de usuario :");
                user = sc.next();
                System.out.println("Inserte el nuevo password :");
                pass = sc.next();
                Profesores p = new Profesores(nombre,user,pass);
                miGestor.insertarProfesor(p);
                System.out.println("Profesor insertado correctamente.");
            break;
            case 2:
                System.out.println("Escriba el nombre de usuario :");
                user = sc.next();
                pro = miGestor.mostrarProfesoresPorUsuario(user);
                if(user != null){
                    for(Profesores i : pro){
                        miGestor.borrarProfesor(i);
                    }
                }else{
                    System.out.println("No se puede dejar vacío el campo de usuario");
                }
            break;
            case 3:
                System.out.println("Escriba el nombre de usuario :");
                user = sc.next();
                System.out.println("Introduzca el password :");
                pass = sc.next();
                pro = miGestor.mostrarProfesoresPorUsuario(user);
                for(Profesores i : pro){
                    if(i.getNombreUsuario().equals(user) && i.getpass().equals(pass)){
                        check = true;
                    }else{
                        check = false;
                    }
                }
                
                if(check){
                    System.out.println("BIEnvenIDo "+user+" !");
                    menuProfesor();
                }else{
                    System.out.println("El nombre de usuario o el password no se corresponde");
                }
            break;
            case 4:
                System.out.println("Escriba el nombre de usuario :");
                user = sc.next();
                System.out.println("Introduzca el password :");
                pass = sc.next();
                al = miGestor.mostraralumnosPorUsuario(user);
                for(Alumnos i : al){
                    if(i.getNombreUsuario().equals(user) && i.getpassword().equals(pass)){
                        check = true;
                    }else{
                        check = false;
                    }
                }
                
                if(check){
                    System.out.println("Se ha autentificado correctamente");
                }else{
                    System.out.println("El nombre de usuario o el password no se corresponde");
                }
            break;
        }
            
        }while(menu!=0);        
        
    }
    
    public static voID menuProfesor(){
        
        ufnotasORM miGestor = new ufnotasORM();
        Scanner sc = new Scanner(system.in);
        List<Modulos> mod;
        List<Alumnos> al;
        
        int menu = 8;
        
        do{
            
            System.out.println("1.- Insertar módulo");
            System.out.println("2.- Listar TodoS los módulos");
            System.out.println("3.- Eliminar módulo");
            System.out.println("4.- Insertar alumno");
            System.out.println("5.- Listar TodoS los alumnos");
            System.out.println("6.- Listar alumnos por módulo");
            System.out.println("7.- Eliminar alumno");
            System.out.println("0.- Salir");
            
            menu = sc.nextInt();
            
            switch(menu){
                case 1:
                    System.out.println("Inserte el nombre del módulo :");
                    String nom_modulo = sc.next();
                    if(nom_modulo != null){
                        Modulos m = new Modulos(nom_modulo);
                        miGestor.insertarModulo(m);
                        System.out.println("Modulo insertado correctamente");
                    }else{
                        System.out.println("No se puede dejar el nombre del modulo vacio");
                    }
                break;
                case 2:
                    System.out.println(miGestor.mostrarModulos());
                break;
                case 3:
                    System.out.println("Introduzca el nombre del modulo :");
                    String nomMod = sc.next();
                    mod = miGestor.mostrarModulosPorNombre(nomMod);
                    if(nomMod!=null){
                        for(Modulos bo : mod){
                            miGestor.borrarModulo(m);
                        }
                    }else{
                        System.out.println("Debe introducir el nombre del modulo para eliminarlo");
                    }
                break;                       
                case 4:
                    System.out.println("Introduzca el nombre del alumno :");
                    String nombre = sc.next();
                    System.out.println("Introduzca el nombre de usuario del alumno :");
                    String nombreUsuario = sc.next();
                    System.out.println("Introduzca el password del usuario :");
                    String password = sc.next();
                    if(nombre != null && nombreUsuario != null && password != null){
                        Alumnos a = new Alumnos(nombre,nombreUsuario,password);
                        miGestor.insertaralumno(a);
                        System.out.println("Se ha insertado el alumno correctamente");
                    }else{
                        System.out.println("No se puede dejar ningún campo vacío");
                    }
                break;
                case 5:
                    System.out.println(miGestor.mostraralumnos());
                break;
                case 6:
                    System.out.println("Introduzca el nombre del modulo :");
                    try{
                    String modulo = sc.next();
                    
                    if(!modulo.isEmpty()){
                        System.out.println(miGestor.mostraralumnosPorModulo(modulo));
                    }else{
                        System.out.println("Debe introducir un ID");
                    }
                    
                    }catch(inputMismatchException e){
                        System.out.println(e+" "+"Debe introducir un valor entero");
                    }
                break;
                case 7:
                    System.out.println("Introduzca el nombre de usuario del alumno :");
                    String user = sc.next();
                    al = miGestor.mostraralumnosPorUsuario(user);
                    if(user!=null){
                        for(Alumnos a : al){
                            miGestor.borraralumno(a);
                        }
                    }else{
                        System.out.println("No se puede dejar el nombre de usuario vacío");
                    }
                break;
            }
            
        }while(menu!=0);
        
    }
    
}

ufnotasORM.java

package ufnotasORM;

import java.util.List;
import org.hibernate.query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Projections;
import org.hibernate.exception.ConstraintViolationException;
import ufnotas.Alumnos;
import ufnotas.Profesores;
import ufnotas.Modulos;
import ufnotas.Historial;
import ufnotas.NewHibernateUtil;
import ufnotas.Notas;

/**
 *
 * @author Lluis
 */
public class ufnotasORM {
    
    private Session se;
    private Transaction tr;
    
    public ufnotasORM(){
        se = NewHibernateUtil.getSessionFactory().openSession();
    }
    
    public voID insertarProfesor(Profesores p){
        try{
            tr = se.beginTransaction();
            se.save(p);
            tr.commit();
        } catch(ConstraintViolationException ex){
            tr.rollback();
            throw ex;
        }
    }
    
    public voID borrarProfesor(Profesores p){
        tr = se.beginTransaction();
        se.delete(p);
        tr.commit();
    }
    
    public boolean valIDarProfesor(Profesores p){
        Profesores pro = (Profesores) se.get(Profesores.class,p.getID());
        return (pro != null);
    }
    
    public boolean valIDaralumno(Alumnos a){
        Alumnos al = (Alumnos) se.get(Alumnos.class,a.getID());
        return (al != null);
    }
    
    public voID insertarModulo(Modulos m){
        try{
            tr = se.beginTransaction();
            se.save(m);
            tr.commit();
        }catch(ConstraintViolationException ex){
            tr.rollback();
            throw ex;
        }
    }
    
    public List<Modulos> mostrarModulos(){
        String query = "SELECT m FROM Modulos m";
        query q = se.createquery(query);
        return q.List();
    }
    
    public voID borrarModulo(Modulos m){
        tr = se.beginTransaction();
        se.delete(m);
        tr.commit();
    }
    
    public voID insertaralumno(Alumnos a){
        try{
            tr = se.beginTransaction();
            se.save(a);
            tr.commit();
        }catch(ConstraintViolationException ex){
            tr.rollback();
            throw ex;
        }
    }
    
    public List<Alumnos> mostraralumnos(){
        String query = "SELECT a FROM Alumnos a";
        query q = se.createquery(query);
        return q.List();
    }
    
    public List<Profesores> mostrarProfesoresPorUsuario(String p){
        String sql = "SELECT p FROM Profesores p WHERE p.nombreUsuario = :username";
        query query = se.createquery(sql);
        query.setParameter("username",p);
        return query.List();
    }
    
    public List<Modulos> mostrarModulosPorNombre(String m){
        String sql = "SELECT m FROM Modulos m WHERE m.nombre = :nombre";
        query query = se.createquery(sql);
        query.setParameter("nombre",m);
        return query.List();
    }
    
    public List<Modulos> mostraralumnosPorModulo(String modulo){
        String query = "SELECT a FROM Alumnos a JOIN a.notas n JOIN n.modulo m WHERE m.nombre = :modulo";
        query q = se.createquery(query);
        q.setParameter("modulo",modulo);
        return q.List();
    }
    
    public List<Alumnos> mostraralumnosPorUsuario(String a){
        String query = "SELECT a FROM Alumnos a WHERE a.nombreUsuario = :username";
        query q = se.createquery(query);
        q.setParameter("username",a);
        return q.List();
    }
    
    public long contarModulos(){
        long count = ((Long)se.createquery("SELECT COUNT(*) FROM Modulos m").iterate().next());
        return count;
    }
    
    public voID borraralumno(Alumnos a){
        tr = se.beginTransaction();
        se.delete(a);
        tr.commit();
    }
    
    
}

Modulos.java

package ufnotas;

import java.util.HashSet;
import java.util.Set;

/**
 *
 * @author Lluis
 */
public class Modulos implements java.io.Serializable{
    
    private int ID; // Integer
    private String nombre;
    private Set<Notas> notas = new HashSet<>();
    
    public Modulos(){
        
    }
    
    public Modulos(String nombre){
        this.nombre = nombre;
    }

    public int getID() {
        return ID;
    }


    public voID setID(int ID) {
        this.ID = ID;
    }


    public String getNombre() {
        return nombre;
    }


    public voID setNombre(String nombre) {
        this.nombre = nombre;
    }

    public Set getNotas() {
        return notas;
    }


    public voID setNotas(Set notas) {
        this.notas = notas;
    }
    
    @OverrIDe
    public String toString(){
       String cadena;
       cadena = "ID : "+ this.ID + " Nombre : "+ this.nombre;
       return cadena;
    }

    
    
}

Notas.java

package ufnotas;

/**
 *
 * @author Lluis
 */
public class Notas implements java.io.Serializable{
    
    private Alumnos alumno;
    private Modulos modulo;
    private float notas;
    
    public Notas(){
        
    }
    
    public Notas(Alumnos ID_alumno,Modulos ID_modulo,float notas){
        this.alumno = ID_alumno;
        this.modulo = ID_modulo;
        this.notas = notas;
    }


    /**
     * @return the ID_alumno
     */
    public Alumnos getAlumno() {
        return alumno;
    }

    /**
     * @param alumno the ID_alumno to set
     */
    public voID setAlumno(Alumnos alumno) {
        this.alumno = alumno;
    }

    /**
     * @return the ID_modulo
     */
    public Modulos getModulo() {
        return modulo;
    }

    /**
     * @param modulo the ID_modulo to set
     */
    public voID setModulo(Modulos modulo) {
        this.modulo = modulo;
    }

    /**
     * @return the notas
     */
    public float getNotas() {
        return notas;
    }

    /**
     * @param notas the notas to set
     */
    public voID setNotas(float notas) {
        this.notas = notas;
    }
    
    @OverrIDe
    public String toString(){
       String cadena;
       cadena = "ID_alumno : "+ this.getAlumno().getID() + "ID_modulo :"+ this.getModulo().getID() + "Notas :" + this.getNotas();
       return cadena;
    }
    
}

Notas.hbm.xml

<?xml version="1.0" enCoding="UTF-8"?>
<!DOCTYPE hibernate-mapPing PUBliC "-//Hibernate/Hibernate MapPing DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapPing-3.0.dtd">
<hibernate-mapPing>
  <class dynamic-insert="false" dynamic-update="false" mutable="true" name="ufnotas.Notas" optimistic-lock="version" polymorphism="implicit" select-before-update="false">
    <composite-ID>
      <key-property column="ID_alumno" name="alumno"/>
      <key-property column="ID_modulo" name="modulo"/>
    </composite-ID>
    <many-to-one class="ufnotas.Alumnos" fetch="select" insert="false" name="alumno" update="false">
      <column name="ID_alumno" not-null="true"/>
    </many-to-one>
    <many-to-one class="ufnotas.Modulos" fetch="select" insert="false" name="modulo" update="false">
      <column name="ID_modulo" not-null="true"/>
    </many-to-one>
    <property name="notas" type="float">
      <column name="notas" not-null="true"/>
    </property>
  </class>
</hibernate-mapPing>

Modulos.java

package ufnotas;

/**
 *
 * @author Lluis
 */
public class Notas implements java.io.Serializable{
    
    private Alumnos alumno;
    private Modulos modulo;
    private float notas;
    
    public Notas(){
        
    }
    
    public Notas(Alumnos ID_alumno,float notas){
        this.alumno = ID_alumno;
        this.modulo = ID_modulo;
        this.notas = notas;
    }


    /**
     * @return the ID_alumno
     */
    public Alumnos getAlumno() {
        return alumno;
    }

    /**
     * @param alumno the ID_alumno to set
     */
    public voID setAlumno(Alumnos alumno) {
        this.alumno = alumno;
    }

    /**
     * @return the ID_modulo
     */
    public Modulos getModulo() {
        return modulo;
    }

    /**
     * @param modulo the ID_modulo to set
     */
    public voID setModulo(Modulos modulo) {
        this.modulo = modulo;
    }

    /**
     * @return the notas
     */
    public float getNotas() {
        return notas;
    }

    /**
     * @param notas the notas to set
     */
    public voID setNotas(float notas) {
        this.notas = notas;
    }
    
    @OverrIDe
    public String toString(){
       String cadena;
       cadena = "ID_alumno : "+ this.getAlumno().getID() + "ID_modulo :"+ this.getModulo().getID() + "Notas :" + this.getNotas();
       return cadena;
    }
    
}

Modulos.hbm.xml

<?xml version="1.0" enCoding="UTF-8"?>
<!DOCTYPE hibernate-mapPing PUBliC "-//Hibernate/Hibernate MapPing DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapPing-3.0.dtd">

<hibernate-mapPing>
  <class name="ufnotas.Modulos" table="modulos" optimistic-lock="version">
      <ID name="ID" type="int" column="ID">
          <generator class="assigned" />
      </ID>
      <property name="nombre" type="string">
          <column name="nombre" length="25" not-null="true" />
      </property>
      <set name="notas" table="notas" inverse="true" lazy="true" fetch="select" cascade="delete">
            <key>
                <column name="ID_modulo" not-null="true" />
            </key>
            <one-to-many class="ufnotas.Notas" />
        </set>
  </class> 
</hibernate-mapPing>

Alumnos.hbm.xml

<?xml version="1.0" enCoding="UTF-8"?>
<!DOCTYPE hibernate-mapPing PUBliC "-//Hibernate/Hibernate MapPing DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapPing-3.0.dtd">
<hibernate-mapPing>
  <class name="ufnotas.Alumnos" optimistic-lock="version" table="alumnos">
    <ID column="ID" name="ID" type="int">
      <generator class="assigned"/>
    </ID>
    <property name="nombre" type="string">
      <column length="25" name="nombre" not-null="true"/>
    </property>
    <property name="nombreUsuario" type="string">
      <column length="25" name="nom_user" not-null="true"/>
    </property>
    <property name="password" type="string">
      <column length="25" name="password" not-null="true"/>
    </property>
    <set cascade="delete" fetch="select" inverse="true" lazy="false" name="notasAlumno" table="notas">
      <key>
        <column name="ID_alumno" not-null="true"/>
      </key>
      <one-to-many class="ufnotas.Notas"/>
    </set>
  </class>
</hibernate-mapPing>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的尝试为实体添加标识符时遇到问题全部内容,希望文章能够帮你解决尝试为实体添加标识符时遇到问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: