I'm trying to use a @SecondaryTable, and I think I've tried every possible variant.
The table SettingType has a field named typeId which points to UserSetting.id.
There are other classes inheriting from UserSetting, but I've removed them to make sure they weren't causing this.
@Entity ( access = AccessType.FIELD )
@Table ( name = "PersonSetting" )
@SecondaryTables({
@SecondaryTable (
name="SettingType",
join={
@JoinColumn(
name="id",
referencedColumnName="typeId" )
}
)
})
public class UserSetting {
@Id
private int id;
@Column(secondaryTable="SettingType")
private String type;
@Column(secondaryTable="SettingType")
private String name;
@ManyToOne
@JoinColumn ( name="personId" )
private User user;
public int getId (){
return id;
}
public String getName (){
return name;
}
public String getValueType (){
return type;
}
public User getUser (){
return user;
}
}
Hibernate version: 3.1rc1, annotations 3.1b5
Full stack trace of any exception that occurs:
java.lang.ExceptionInInitializerError
at com.snusk.HibernateUtil.<clinit>(HibernateUtil.java:19)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:925)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3857)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4118)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:2930)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:403)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1276)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at org.hibernate.util.StringHelper.root(StringHelper.java:150)
at org.hibernate.mapping.PersistentClass.getProperty(PersistentClass.java:347)
at org.hibernate.mapping.PersistentClass.getProperty(PersistentClass.java:356)
at org.hibernate.cfg.annotations.TableBinder.bindFk(TableBinder.java:136)
at org.hibernate.cfg.annotations.EntityBinder.bindJoinToPersistentClass(EntityBinder.java:360)
at org.hibernate.cfg.annotations.EntityBinder.finalSecondaryTableBinding(EntityBinder.java:346)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:684)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:256)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:191)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1138)
at com.snusk.HibernateUtil.<clinit>(HibernateUtil.java:16)
... 18 more
|