2016-12-15 186 views
0

即時通訊noobie在這裏,但我一直在這裏找到我的問題的解決方案,我沒有看到它...我新的冬眠和即時通訊使用我的空閒時間來學習這一點。休眠配置:Jar文件?

package negocio; 

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.Service; 
import org.hibernate.service.ServiceRegistry; 


import integracion.HibernateUtil; 
import integracion.dao.BodegaDAOImpl; 
import integracion.dao.VinoDAO; 
import integracion.dao.VinoDAOImpl; 
import integracion.entidades.Bodega; 

public class Main { 

    public static void main(String[] args) { 

     SessionFactory sessionFactory; 


     Configuration configuration = new Configuration(); 
     configuration.configure(); 

     ServiceRegistry serviceRegistry 
     = new StandardServiceRegistryBuilder() 
      .applySettings(configuration.getProperties()).build(); 
     //The problem is here 
     **sessionFactory = configuration.buildSessionFactory(serviceRegistry);** 

     Session session = sessionFactory.openSession(); 
     BodegaDAOImpl bodegaDao = new BodegaDAOImpl<>(); 
     bodegaDao.get(1); 


    } 

} 

這是添加1

罐子的列表,這是映射文件:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="connection.url">jdbc:mysql://localhost:3306/vinoteca</property> 
    <property name="connection.username">root</property> 
    <property name="connection.password">root</property> 
    <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> 
    <property name="hibernate.show_sql">true</property> 


    <mapping class="integracion.entidades.Vino"/> 
    <mapping class="integracion.entidades.Bodega"/> 
    <mapping class="integracion.entidades.Denominacion"/> 

    </session-factory> 
</hibernate-configuration> 




dic 15, 2016 12:37:51 AM org.hibernate.Version logVersion 
INFO: HHH000412: Hibernate Core {5.0.9.Final} 
dic 15, 2016 12:37:51 AM org.hibernate.cfg.Environment <clinit> 
INFO: HHH000206: hibernate.properties not found 
dic 15, 2016 12:37:51 AM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: HHH000021: Bytecode provider name : javassist 
dic 15, 2016 12:37:51 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 
dic 15, 2016 12:37:51 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 
dic 15, 2016 12:37:51 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/vinoteca] 
dic 15, 2016 12:37:51 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001001: Connection properties: {user=root, password=****} 
dic 15, 2016 12:37:51 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001003: Autocommit mode: false 
dic 15, 2016 12:37:51 AM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> 
INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 
Thu Dec 15 00:37:51 CET 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
dic 15, 2016 12:37:51 AM org.hibernate.dialect.Dialect <init> 
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect 
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/NamedStoredProcedureQuery 
    at org.hibernate.cfg.AnnotationBinder.bindDefaults(AnnotationBinder.java:259) 
    at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.prepare(AnnotationMetadataSourceProcessorImpl.java:184) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.prepare(MetadataBuildingProcess.java:156) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:253) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83) 
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418) 
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:692) 
    at negocio.Main.main(Main.java:31) 
Caused by: java.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 9 more 

所以..這就是問題所在。我看到日蝕時所說的問題java.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery

是因爲沒有添加jar(javax.persistence.jar或hibernate-jpa-2.1-api-1.0.0 ... jar),但是我添加了它們,我不解決這個問題。

任何人都可以說我爲什麼工作不好?謝謝! PD:對不起我的英語,我不是英語本地人=)

+0

顯然不是JPA API,所以請不要標記 –

回答

0

使用像maven或gradle這樣的構建系統來構建您的項目,並添加對hibernate的依賴關係。這幾乎肯定會解決所有與基礎依賴相關的類路徑問題。

+0

是否需要在這一刻使用maven? ive從來沒有使用過maven,我更喜歡在第一步中使用hibernate(開發簡單的例子),然後學習maven並使用它... –

+0

@Egocéntrico手動構建類路徑就像在編譯時使用C編譯器可用:除非你真的知道你在做什麼,否則你可能做錯了。基本的maven或gradle很容易使用,你會在網上找到大量的例子。你甚至可以使用maven輕鬆找到你需要的罐子,例如使用'mvn dependency:tree'。 –

+0

好的。虐待你的意見,我也學習maven!謝謝! –

0

將所需的jar文件添加到類路徑中。

+0

是的,是的,我添加了javax.persistence ..我認爲這是必要的jar ... –