2016-03-25 29 views
2

我的hibernate.cfg.xml文件: 錯誤在我的第一個休眠程序

<hibernate-configuration> 
     <session-factory> 
      <!-- Database connection settings --> 
      <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
      <property name="connection.url">jdbc:mysql://localhost:3306/hibernateTutorial</property> 
      <property name="connection.username">root</property> 
      <property name="connection.password"></property> 

      <!-- JDBC connection pool (use the built-in) --> 
      <property name="connection.pool_size">1</property> 

      <!-- SQL dialect --> 
      <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 

      <!-- Disable the second-level cache --> 
      <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 

      <!-- Echo all executed SQL to stdout --> 
      <property name="show_sql">true</property> 

      <!-- Drop the existing tables and create new one --> 
      <property name="hbm2ddl.auto">create</property> 

      <!-- Mention here all the model classes along with their package name --> 
      <mapping class="hibernate.Student_Info"/> 


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

主類是:

package hibernate; 

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 
public class Main { 
    public static void main(String[] args) { 

     Student_Info student = new Student_Info(); 
     student.setName("jeevan"); 
     student.setRollNo(1); 
     SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory(); 
     Session session=sessionFactory.openSession(); 
     session.beginTransaction(); 
     session.save(student); 
     session.getTransaction().commit(); 
     session.close(); 
     sessionFactory.close();   
    } 
    } 

Model類是:

package hibernate; 

import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.Table; 

@Entity 
@Table(name="Student_Information") 
public class Student_Info 
{ 
    @Id 
    private int rollNo; 
    public int getRollNo() { 
     return rollNo; 
    } 
    public void setRollNo(int rollNo) { 
     this.rollNo = rollNo; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    private String name; 
} 

我我得到以下錯誤:

Mar 25, 2016 4:00:27 PM org.hibernate.Version logVersion 
INFO: HHH000412: Hibernate Core {5.0.6.Final} 
Mar 25, 2016 4:00:27 PM org.hibernate.cfg.Environment <clinit> 
INFO: HHH000206: hibernate.properties not found 
Mar 25, 2016 4:00:27 PM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: HHH000021: Bytecode provider name : javassist 
Mar 25, 2016 4:00:27 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 
Mar 25, 2016 4:00:27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 
Mar 25, 2016 4:00:27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/hibernateTutorial] 
Mar 25, 2016 4:00:27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001001: Connection properties: {user=root, password=****} 
Mar 25, 2016 4:00:27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001003: Autocommit mode: false 
Mar 25, 2016 4:00:27 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> 
INFO: HHH000115: Hibernate connection pool size: 1 (min=1) 
Mar 25, 2016 4:00:27 PM org.hibernate.dialect.Dialect <init> 
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect 
Mar 25, 2016 4:00:27 PM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl useContextualLobCreation 
INFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4 
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Converter 
    at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.categorizeAnnotatedClass(AnnotationMetadataSourceProcessorImpl.java:115) 
    at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.<init>(AnnotationMetadataSourceProcessorImpl.java:104) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.<init>(MetadataBuildingProcess.java:147) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:141) 
    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 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724) 
    at hibernate.Main.main(Main.java:12) 
Caused by: java.lang.ClassNotFoundException: javax.persistence.Converter 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
    ... 10 more 

我有lib文件夾中的所有jar文件,但它仍然無法正常工作,並在控制檯中顯示。

+0

您可以發佈pom嗎? –

+0

發佈JPA,Hibernate API版本。可能與此相關http://stackoverflow.com/a/30554407/1897935 –

回答

1

添加以下依賴你的POM:

<dependency> 
    <groupId>javax.persistence</groupId> 
    <artifactId>persistence-api</artifactId> 
    <version>1.0.2</version> 
</dependency> 
+0

我正在使用myeclips和wamp服務器,在那裏我找到了pom – Jeevan

+0

如果您不使用maven進行構建,請下載該jar並將其添加到您的classpath – Jens

0
  1. 添加以下依賴你的項目
  2. 更新Maven的依賴
  3. 運行作爲Maven的清潔
  4. 清潔您的Eclipse
  5. 項目
  6. 試試看會不會有效

    <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-core</artifactId> 
        <version>4.3.0.Final</version> 
    </dependency> 
    <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-validator</artifactId> 
        <version>4.3.0.Final</version> 
    </dependency>