[报错空指针异常,本人菜鸟,网上搜了很多资料,但是没有能解决,希望哪位大侠能帮帮忙测试一下,小弟在此谢谢了。
4:39:05,593 ERROR org.hibernate.tool.hbm2ddl.SchemaExport:372 - HHH000231: Schema export unsuccessful
java.lang.NullPointerException
at org.hibernate.tool.hbm2ddl.DatabaseExporter.<init>(DatabaseExporter.java:54)
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:354)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:291)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:280)
at com.bjsxt.hibernate.HibernateORMappingTest.testSchemaExport(HibernateORMappingTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
14:39:05,593  INFO org.hibernate.tool.hbm2ddl.SchemaExport:392 - HHH000230: Schema export complete

解决方案 »

  1.   

    package com.bjsxt.hibernate;import java.util.Date;import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.hibernate.tool.hbm2ddl.SchemaExport;
    import org.junit.AfterClass;
    import org.junit.BeforeClass;
    import org.junit.Test;public class HibernateORMappingTest {
    private static SessionFactory sessionFactory;

    //@BeforeClass
    public static void beforeClass() {
    sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
    }
    //@AfterClass
    public static void afterClass() {
    sessionFactory.close();
    }



    @Test
    public void testSchemaExport() {
    new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
    }

    public static void main(String[] args) {
    beforeClass();
    }
    }
      

  2.   

    package com.bjsxt.hibernate;import javax.persistence.Embedded;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.JoinColumns;
    import javax.persistence.OneToOne;@Entity
    public class Husband {
    private int id;
    private String name;
    private Wife wife;
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    public int getId() {
    return id;
    }

    public String getName() {
    return name;
    }
    @Embedded
    public Wife getWife() {
    return wife;
    }
    public void setId(int id) {
    this.id = id;
    }
    public void setName(String name) {
    this.name = name;
    }
    public void setWife(Wife wife) {
    this.wife = wife;
    }

    }
      

  3.   

    package com.bjsxt.hibernate;public class Wife {

    private String wifeName;
    private int age;

    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }

    public String getWifeName() {
    return wifeName;
    }
    public void setWifeName(String name) {
    this.wifeName = name;
    }

    }
      

  4.   

    我也遇到同样的问题了,应该是Hibernate4的一个bug
    下面的链接是Hibernate官网的Bug描述
    https://hibernate.onjira.com/browse/HHH-6487?page=com.atlassian.jirafisheyeplugin%3Afisheye-issuepanel#issue-tabs