【发布时间】:2012-10-02 00:34:11
【问题描述】:
我已经搜索并发现了类似的问题,但它们似乎与
- Why am I getting this NullPointer exception?
- OneToOne Mapping with hibernate/JBoss/Seam
- ANN-613 - NPE when mappedBy property is wrong on a @OneToOne
- ANN-558 - @OneToMany(mappedBy="") can not recognize properties in parent classes
- Hibernate Users - NPE with @Id on @OneToOne
我有一些像这样映射的实体:
Person
|
+--User
我想添加一个新实体 PersonPartDeux,其 OneToOne 映射到 Person。生成的映射应如下所示:
Person + PersonPartDeux
|
+--User
当我这样做时,在尝试加载映射时会抛出 NullPointerException:
java.lang.NullPointerException
at org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:135)
如何指定映射以避免此异常?
这是我的代码:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Person implements Serializable
{
@Id
@GeneratedValue
public Long id;
@Version
public int version = 0;
public String name;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
public PersonPartDeux personPartDeux;
}
@Entity
public class PersonPartDeux implements Serializable
{
@Id
@GeneratedValue(generator = "person-primarykey")
@GenericGenerator(
name = "person-primarykey",
strategy = "foreign",
parameters = @Parameter(name = "property", value = "person")
)
public Long id = null;
@Version
public int version = 0;
@OneToOne(optional=false, mappedBy="person")
public Person person;
public String someText;
}
@Entity
@PrimaryKeyJoinColumn(name = "person_Id")
public class User extends Person
{
public String username;
public String password;
}
至于我为什么要打扰,我需要继承和OneToOne 映射来解决我的应用程序中的不同已知问题。
【问题讨论】:
标签: java hibernate nullpointerexception one-to-one