Довод "против" Error al insertar datos В спящем режиме

Довод "против" Estoy tratando de insertar datos en dos tablas una relación one-to-many mapeada подставляют Hibernate en Netbeans, pero al momento de ejecutar la aplicación меня продажа ошибка el siguiente:

выполненный: 11 синяка 2017 0:28:20 org.hibernate.annotations.common.reflection.java. ИНФОРМАЦИЯ о JavaReflectionManager: HCANN000001: Будьте в спящем режиме Аннотации палаты общин {4.0.4. Финал} 11 синяка 2017 0:28:20 org.hibernate. Версия logVersion ИНФОРМАЦИЯ: HHH000412: Будьте в спящем режиме Ядро {4.3.1. Финал} 11 синяка 2017 0:28:20 org.hibernate.cfg. ИНФОРМАЦИЯ о среде: HHH000206: hibernate.properties, не найденный 11 синяка 2017 0:28:20 org.hibernate.cfg. Среда buildBytecodeProvider ИНФОРМАЦИЯ: HHH000021: имя поставщика Байт-кода: javassist 11 синяка 2017 0:28:20 org.hibernate.cfg. Конфигурация настраивает ИНФОРМАЦИЮ: HHH000043: Конфигурирование от ресурса: /hibernate.cfg.xml 11 синяка 2017 0:28:20 org.hibernate.cfg. Конфигурация getConfigurationInputStream ИНФОРМАЦИЯ: HHH000040: ресурс Конфигурации: /hibernate.cfg.xml 11 синяка 2017 0:28:20 org.hibernate.internal.util.xml. DTDEntityResolver resolveEntity ПРЕДУПРЕЖДАЕТ: HHH000223: Распознанный устаревший в спящем режиме пространство имен http://hibernate.sourceforge.net/. Используйте пространство имен http://www.hibernate.org/dtd/ вместо этого. Относитесь для Спящего режима 3.6 Руководств по миграции! 11 синяка 2017 0:28:20 org.hibernate.cfg. Конфигурация addResource ИНФОРМАЦИЯ: HHH000221: Чтение отображений от ресурса: Entity/Certificate.hbm.xml 11 синяка 2017 0:28:20 org.hibernate.cfg. Конфигурация addResource ИНФОРМАЦИЯ: HHH000221: Чтение отображений от ресурса: Entity/Employee.hbm.xml 11 синяка 2017 0:28:20 org.hibernate.cfg. Конфигурация doConfigure ИНФОРМАЦИЯ: HHH000041: Настроенный SessionFactory: пустой указатель 11 синяка 2017 0:28:20 org.hibernate.engine.jdbc.connections.internal. DriverManagerConnectionProviderImpl настраивают, ПРЕДУПРЕДИТЕ: HHH000402: Используя В спящем режиме встроенный пул соединения (не для производственного использования!) 11 синяка 2017 0:28:20 org.hibernate.engine.jdbc.connections.internal. Информация DriverManagerConnectionProviderImpl buildCreator: HHH000401: использование драйвера [com.mysql.jdbc. Драйвер] в URL [jdbc:mysql://localhost:3306/java_util_set? zeroDateTimeBehavior=convertToNull] 11 синяка 2017 0:28:20 org.hibernate.engine.jdbc.connections.internal. Информация DriverManagerConnectionProviderImpl buildCreator: HHH000046: свойства Соединения: {user=root, пароль = ****} 11 синяка 2017 0:28:20 org.hibernate.engine.jdbc.connections.internal. Информация DriverManagerConnectionProviderImpl buildCreator: HHH000006: режим Autocommit: ложь 11 синяка 2017 0:28:20 org.hibernate.engine.jdbc.connections.internal. DriverManagerConnectionProviderImpl настраивают ИНФОРМАЦИЮ: HHH000115: Будьте в спящем режиме размер пула соединения: 20 (min=1) 11 синяка 2017 0:28:20 org.hibernate.dialect. ИНФОРМАЦИЯ о диалекте: HHH000400: Используя диалект: org.hibernate.dialect. MySQL5Dialect, Неудавшийся для создания sessionFactory object.org.hibernate. MappingException: ссылки Ассоциации неотображенный класс: Исключение Сертификата в потоке "основной" java.lang. ExceptionInInitializerError в java_util_set. Java_util_Set.main(Java_util_Set.java:36), Вызванный: org.hibernate. MappingException: ссылки Ассоциации неотображенный класс: Сертификат в org.hibernate.cfg. HbmBinder.bindCollectionSecondPass(HbmBinder.java:2557) в org.hibernate.cfg. HbmBinder$CollectionSecondPass.secondPass (HbmBinder.java:2808) в org.hibernate.cfg. CollectionSecondPass.doSecondPass(CollectionSecondPass.java:70) в org.hibernate.cfg. Configuration.originalSecondPassCompile (Конфигурация java:1695) в org.hibernate.cfg. Configuration.secondPassCompile (Конфигурация java:1424) в org.hibernate.cfg. Configuration.buildSessionFactory (Конфигурация java:1844) в org.hibernate.cfg. Configuration.buildSessionFactory (Конфигурация java:1928) в java_util_set. Java_util_Set.main(Java_util_Set.java:33)

Меня podrían indicar Комо solucionarlo o indicarme надел puedo conseguir Буэнос-Айрес ejemplos параграф trabajar todos Лос опечатки, de relaciones en Hibernate подставляет Netbeans. Сын Estos los código que tengo:

Base de datos:

CREATE DATABASE IF NOT EXISTS `java_util_set` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `java_util_set`;
CREATE TABLE IF NOT EXISTS `certificate` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`certificate_name` varchar(30) DEFAULT NULL,
`employee_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `employee` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(20) DEFAULT NULL,
`last_name` varchar(20) DEFAULT NULL,
`salary` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Esta es la clase Employee:

package Entity;
// Generated 10/03/2017 11:27:32 PM by Hibernate Tools 4.3.1

import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * Employee generated by hbm2java
 */
@Entity
@Table(name="employee"
    ,catalog="java_util_set"
)
public class Employee {

     private Integer id;
     private String firstName;
     private String lastName;
     private Integer salary;
     private Set certificates;

    public Employee() {
    }

    public Employee(String firstName, String lastName, Integer salary) {
       this.firstName = firstName;
       this.lastName = lastName;
       this.salary = salary;
    }

     @Id @GeneratedValue(strategy=IDENTITY)

    @Column(name="id", unique=true, nullable=false)
    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Column(name="first_name", length=20)
    public String getFirstName() {
        return this.firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    @Column(name="last_name", length=20)
    public String getLastName() {
        return this.lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    @Column(name="salary")
    public Integer getSalary() {
        return this.salary;
    }

    public void setSalary(Integer salary) {
        this.salary = salary;
    }

    public Set getCertificates() {
      return this.certificates;
   }

   public void setCertificates( Set certificates ) {
      this.certificates = certificates;
   }
}

Esta es la clase Certificate:

package Entity;
// Generated 10/03/2017 11:27:32 PM by Hibernate Tools 4.3.1

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * Certificate generated by hbm2java
 */
@Entity
@Table(name = "certificate", catalog = "java_util_set"
)
public class Certificate  {

    private Integer id;
    private String certificateName;
    private Integer employeeId;

    public Certificate() {
    }

    public Certificate(String certificateName) {
        this.certificateName = certificateName;
        //this.employeeId = employeeId;
    }

    @Id
    @GeneratedValue(strategy = IDENTITY)

    @Column(name = "id", unique = true, nullable = false)
    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Column(name = "certificate_name", length = 30)
    public String getCertificateName() {
        return this.certificateName;
    }

    public void setCertificateName(String certificateName) {
        this.certificateName = certificateName;
    }

   /* @Column(name = "employee_id")
    public Integer getEmployeeId() {
        return this.employeeId;
    }

    public void setEmployeeId(Integer employeeId) {
        this.employeeId = employeeId;
    }*/

    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (!this.getClass().equals(obj.getClass())) {
            return false;
        }

        Certificate obj2 = (Certificate) obj;
        if ((this.id == obj2.getId()) && (this.certificateName.equals(obj2.getCertificateName()))) {
            return true;
        }
        return false;
    }

    public int hashCode() {
        int tmp = 0;
        tmp = (id + certificateName).hashCode();
        return tmp;
    }
}

Mapeo de employee:





    
      
         This class contains the employee detail. 
      
      
         
      
      
         
         
      
      
      
      
   

Mapeo de certificate:





      
      
         This class contains the certificate records. 
      
      
         
      
      
   

Configuracion y reingenieria инверсия:




  
    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/java_util_set?zeroDateTimeBehavior=convertToNull
    root
    *******
    
    
  

Reingenieria:




  
  
  

Esta es la clase java_util_set:

package java_util_set;

import Entity.Certificate;
import Entity.Employee;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.hibernate.HibernateException; 
import org.hibernate.Session; 
import org.hibernate.Transaction;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 *
 * @author AFAL3D
 */
public class Java_util_Set {

    /**
     * @param args the command line arguments
     */
    private static SessionFactory factory;

    public static void main(String[] args) {
        try {
            factory = new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            System.err.println("Failed to create sessionFactory object." + ex);
            throw new ExceptionInInitializerError(ex);
        }
        Java_util_Set ME = new Java_util_Set();
        /* Let us have a set of certificates for the first employee  */
        HashSet set1 = new HashSet();
        set1.add(new Certificate("MCA"));
        set1.add(new Certificate("MBA"));
        set1.add(new Certificate("PMP"));

        /* Add employee records in the database */
        Integer empID1 = ME.addEmployee("Manoj", "Kumar", 4000, set1);

        /* Another set of certificates for the second employee  */
        HashSet set2 = new HashSet();
        set2.add(new Certificate("BCA"));
        set2.add(new Certificate("BA"));

        /* Add another employee record in the database */
        Integer empID2 = ME.addEmployee("Dilip", "Kumar", 3000, set2);

        /* List down all the employees */
        ME.listEmployees();

        /* Update employee's salary records */
        ME.updateEmployee(empID1, 5000);

        /* Delete an employee from the database */
        ME.deleteEmployee(empID2);

        /* List down all the employees */
        ME.listEmployees();

    }

    /* Method to add an employee record in the database */
    public Integer addEmployee(String fname, String lname,
            int salary, Set cert) {
        Session session = factory.openSession();
        Transaction tx = null;
        Integer employeeID = null;
        try {
            tx = session.beginTransaction();
            Employee employee = new Employee(fname, lname, salary);
            employee.setCertificates(cert);
            employeeID = (Integer) session.save(employee);
            tx.commit();
        } catch (HibernateException e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
        return employeeID;
    }

    /* Method to list all the employees detail */
    public void listEmployees() {
        Session session = factory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            List employees = session.createQuery("FROM Employee").list();
            for (Iterator iterator1
                    = employees.iterator(); iterator1.hasNext();) {
                Employee employee = (Employee) iterator1.next();
                System.out.print("First Name: " + employee.getFirstName());
                System.out.print("  Last Name: " + employee.getLastName());
                System.out.println("  Salary: " + employee.getSalary());
                Set certificates = employee.getCertificates();
                for (Iterator iterator2
                        = certificates.iterator(); iterator2.hasNext();) {
                    Certificate certName = (Certificate) iterator2.next();
                    System.out.println("Certificate: " + certName.getCertificateName());
                }
            }
            tx.commit();
        } catch (HibernateException e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
    }

    /* Method to update salary for an employee */
    public void updateEmployee(Integer EmployeeID, int salary) {
        Session session = factory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            Employee employee
                    = (Employee) session.get(Employee.class, EmployeeID);
            employee.setSalary(salary);
            session.update(employee);
            tx.commit();
        } catch (HibernateException e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
    }

    /* Method to delete an employee from the records */
    public void deleteEmployee(Integer EmployeeID) {
        Session session = factory.openSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            Employee employee
                    = (Employee) session.get(Employee.class, EmployeeID);
            session.delete(employee);
            tx.commit();
        } catch (HibernateException e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
    }
}

0
задан 12.03.2017, 23:41
1 ответ

Он осложнен, потому что он кажется, что estÃ: s используя какие-то достаточно старые примеры.

В любом случае, если ты сосредотачиваешься на excepci¦n, помещает тебе, что:

Exception in thread "main" java.lang. ExceptionInInitializerError at java_util_set. Java_util_Set.main (Java_util_Set.java:36) Caused by: org.hibernate. MappingException: Association references unmapped class: Подтверди тебе at

а именно, который говорит, что класса объектов в Set Certificate, и который Certificate не является одним из классов mapeadas (из-за Hibernate) а именно, чего нет один entity.

Смотря это, мы ищем c¦mo ты определяешь ассоциацию в Employee.hbm.xml и имеешь:

  <set name="certificates" cascade="all">
     <key column="employee_id"/>
     <one-to-many class="Certificate"/>
  </set>

; в частности:

     <one-to-many class="Certificate"/>

Certificate не полное имя класса а следовательно Hibernate не признает это одним entity; полного имени Entity.Certificate, asà - что deber¦-схвати менять это в:

     <one-to-many class="Entity.Certificate"/>

В другом порядке вещей:

1) имя packages deber¦, - которое должно начинать из-за minúsculas (entity.Certificate). ВСЕГДА.

2) Отсутствие generics, annotations и использование hbm.xml (помимо каких-то сообщений WARNING в log) показывает мне, что estÃ: s используя достаточно старые примеры. Очень старые. Если только ты не был должен работать с c¦digo старо, я рекомендую тебе искать руководители mÃ: s обновленные.

1
ответ дан 24.11.2019, 10:40
  • 1
    Ok спасибо, podrí схвати показывать меня, где я нахожу, более недавние руководители с ясными примерами операций CRUD. – afal3d 18.03.2017, 04:57
  • 2
    Encontré он одну листает с очень хорошими примерами для всех тех, которые хотят быть начатыми с hibernate: cursohibernate.es/doku.php – afal3d 26.03.2017, 00:30

Теги

Похожие вопросы