【问题标题】:Hibernate4 XML mapping without POJO null pointer exceptions没有 POJO 空指针异常的 Hibernate4 XML 映射
【发布时间】:2013-03-25 20:49:41
【问题描述】:

下面的映射 xml(没有 POJO)出现空指针异常。

一个。员工.hmb.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class entity-name="Employee"  table="employee">
    <id name="id"  column="id" type="int" >
        <generator class="native" />
    </id>
    <property name="firstName" column="first_name" type="string"  />
    <property name="lastName" column="last_name" type="string" />
</class>
</hibernate-mapping>

b.输出

Exception in thread "main" java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.hibernate.annotations.common.util.ReflectHelper.classForName(ReflectHelper.java:143)
at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.classForName(JavaReflectionManager.java:117)
at org.hibernate.envers.configuration.RevisionInfoConfiguration.configure(RevisionInfoConfiguration.java:262)
at org.hibernate.envers.configuration.AuditConfiguration.<init>(AuditConfiguration.java:103)
at org.hibernate.envers.configuration.AuditConfiguration.getFor(AuditConfiguration.java:166)
at org.hibernate.envers.event.EnversIntegrator.integrate(EnversIntegrator.java:64)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:303)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
at org.tutorial.hibernate.annotation.UserDetailDemo.main(UserDetailDemo.java:26)

但如果我确实将其映射到 Employee 类,没问题。
请帮忙。
谢谢。

【问题讨论】:

  • 当您“将其映射到 Employee 类”并且一切正常时,您实际改变了什么?在我看来,hbm.xml 已经映射到 Employee 类。
  • @sharakan 没有任何改变。这个想法是我不想使用一个名为 Employee 的类,因为它可以在 hbm.xml 中完成。它看起来很简单,但我不知道为什么它会给出空指针异常。有没有可能 hibernate4 不再允许没有 POJO 的 XML 映射?

标签: hibernate hibernate-mapping


【解决方案1】:

您不能构建一个配置,它指的是在构建配置时无法加载的类。

但是,您可以要求 Hibernate 为您生成 Java 文件,然后编译它们并在运行时使用它们。您可以使用hbm2java 执行此操作。它有一个Ant task,以及一些相关的IDE plugins。它们将生成一个 .java 文件,然后您将在运行时编译和使用该文件。

【讨论】:

  • 蒙蔽我!这是 ORM。当然需要上课。底线是你仍然需要 POJO!我做对了吗?
  • 你明白了。唯一的问题是您是否必须编写它或工具。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多