2015-12-03 6 views
1

Я получаю исключение отображения пытается использовать спящий режим - в самостоятельном приложении Java (с использованием NetBeans 8). Я настроил свой hibernate.cfg.xml и установил файл hbm.xml и сопоставил его, см. Ниже, как настроено мое приложение. Это мой первый опыт использования спящего режима.Hibernate MappingException Неизвестный объект

Dec 04, 2015 9:23:26 AM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: HHH000021: Bytecode provider name : javassist 
Dec 04, 2015 9:23:26 AM org.hibernate.boot.jaxb.internal.stax.LocalXmlResourceResolver resolveEntity 
WARN: HHH90000012: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/hibernate-configuration. Use namespace http://www.hibernate.org/dtd/hibernate-configuration instead. Support for obsolete DTD/XSD namespaces may be removed at any time. 
Dec 04, 2015 9:23:27 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {5.0.0.Final} 
Dec 04, 2015 9:23:27 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 
Dec 04, 2015 9:23:27 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/shlama_dry_clean?zeroDateTimeBehavior=convertToNull] 
Dec 04, 2015 9:23:27 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001001: Connection properties: {user=root, password=****} 
Dec 04, 2015 9:23:27 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001003: Autocommit mode: false 
Dec 04, 2015 9:23:27 AM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> 
INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 
Dec 04, 2015 9:23:27 AM org.hibernate.dialect.Dialect <init> 
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect 
Exception in thread "main" org.hibernate.MappingException: Unknown entity: com.beraben.drycleanpos3.entities.GarmentType 
    at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:776) 
    at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1462) 
    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:100) 
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192) 
    at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38) 
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177) 
    at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32) 
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73) 
    at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:678) 
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:670) 
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:665) 
    at com.beraben.drycleanpos3.app.mainTest.main(mainTest.java:36) 

Мой hibernate.cfg.xml файл

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/shlama_dry_clean?zeroDateTimeBehavior=convertToNull</property> 
    <property name="hibernate.connection.username">root</property> 
    <property name="hibernate.connection.password">root</property> 
    <mapping class="" file="" jar="" package="" resource="garmenttypes.hbm.xml"/> 
    </session-factory> 
</hibernate-configuration> 

мое отображение garmenttype файл

<?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="com.beraben.drycleanpos3.entities.GarmentType" table="garment_types"> 
     <id name="id" column="id"> 
      <generator class="increment"/> 
     </id> 
     <property name="name" column="name"/> 
     <property name="description" column="description"/> 
    </class> 
</hibernate-mapping> 

мой GarmentType объект класса

package com.beraben.drycleanpos3.entities; 

/** 
* 
* @author Evan 
*/ 
public class GarmentType { 
    private int id; 
    private String name; 
    private String description; 

    public int getId() { 
     return id; 
    } 

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

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

} 

Мой главный класс запуска

import com.beraben.drycleanpos3.entities.GarmentType; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 
import org.hibernate.cfg.Configuration; 

/** 
* 
* @author Evan 
*/ 
public class mainTest { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     Configuration configuration = new Configuration().configure(); 
     StandardServiceRegistryBuilder builder = 
       new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); 

     SessionFactory factory = configuration.buildSessionFactory(builder.build()); 
     Session session = factory.openSession(); 

     GarmentType garmentType = new GarmentType(); 
     garmentType.setName("Pants"); 
     garmentType.setDescription("Pants"); 

     session.beginTransaction(); 
     session.save(garmentType); 
     session.getTransaction().commit(); 

    } 

} 

Мой pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.beraben</groupId> 
    <artifactId>DryCleanPOS3</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <repositories> 
     <repository> 
      <id>unknown-jars-temp-repo</id> 
      <name>A temporary repository created by NetBeans for libraries and jars it could not identify. Please replace the dependencies in this repository with correct ones and delete this repository.</name> 
      <url>file:${project.basedir}/lib</url> 
     </repository> 
    </repositories> 
    <dependencies> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>5.0.4.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.37</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>4.3.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>unknown.binary</groupId> 
      <artifactId>mysql-connector-java-5.1.23-bin</artifactId> 
      <version>SNAPSHOT</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.5.6-Final</version> 
     </dependency> 
    </dependencies> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.7</maven.compiler.source> 
     <maven.compiler.target>1.7</maven.compiler.target> 
    </properties> 
</project> 

ответ

0

Пожалуйста, проверьте имя garmenttypes.hbm.xml правильно.

Может быть спящий режим не может найти garmenttypes.hbm.xml

Попробуйте с нижеследующим.

Configuration configuration = new Configuration().configure("hibernate.cfg.xml"); 
configuration.addResource("garmenttypes.hbm.xml"); 

Надеюсь, это поможет.

+0

Какова точная проблема? –

0

Попробуйте поставить @Entity аннотацию выше класса GarmentType.

Смежные вопросы