简体   繁体   English

我的休眠程序在线程“ main” java.lang.NullPointerException中获取异常

[英]Getting Exception in thread “main” java.lang.NullPointerException for my hibernate program

Here is my StudentDetails class: 这是我的StudentDetails类:

package com.gontuseries.hibernate;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

@Entity
@Table(name="STUDENT_DETAILS")
public class StudentDetails {
@Id @GeneratedValue( generator= "newGenerator")
@GenericGenerator(name="newGenerator",strategy = "foreign", parameters = { 
@Parameter(name="property",value="Student_Info")})
private int rollNo;

private int mobile_no;

@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name ="rollNo")
private Student_Info student=new Student_Info();

public Student_Info getStudent() {
    return student;
}
public void setStudent(Student_Info student) {
    this.student = student;
}
public int getMobile_no() {
    return mobile_no;
}
public void setMobile_no(int mobile_no) {
    this.mobile_no = mobile_no;
}


public int getRollNo() {
    return rollNo;
}
public void setRollNo(int rollNo) {
    this.rollNo = rollNo;
}
}

Here is my Main class : 这是我的主班:

 package com.gontuseries.hibernate;

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

    Student_Info student=new Student_Info();
    student.setName("Gontu_Rajesh");
    StudentDetails sd=new StudentDetails();
    sd.setMobile_no(455656);
    sd.setStudent(student);
    // student.setRollNo(3);
    //Student_Info student2=new Student_Info();
    //student2.setName("Gontu_Rajesh_new name");

    SessionFactory sessionFactory= new 
    Configuration().configure().buildSessionFactory();
    Session session = sessionFactory.openSession();
    session.beginTransaction();

    session.save(sd);
    //session.save(student2);

    session.getTransaction().commit();
    session.close();
    sessionFactory.close();
}

}

And here is my Student_Info class : 这是我的Student_Info类:

package com.gontuseries.hibernate;

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

@Entity
@Table(name="STUDENT_INFORMATION")
public class Student_Info {

@Id @GeneratedValue(strategy = GenerationType.SEQUENCE)
private int rollNo;

private String name;

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;
}

}

After running Main class I am getting: 运行Main类后,我得到:

INFO: HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect
Exception in thread "main" java.lang.NullPointerException
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValue(AbstractEntityTuplizer.java:645)
    at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValue(AbstractEntityPersister.java:4725)
    at org.hibernate.id.ForeignGenerator.generate(ForeignGenerator.java:81)
    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:105)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
    at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
    at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
    at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:691)
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:683)
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:678)
    at com.gontuseries.hibernate.Main.main(Main.java:26)

Any help would be appreciated. 任何帮助,将不胜感激。

You probably have the same/similar problem with this post: java.lang.NullPointerException at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValue(AbstractEntityTuplizer.java:521) 您可能对此帖子有相同/相似的问题: org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValue(AbstractEntityTuplizer.java:521)处的java.lang.NullPointerException

Try replacing this: 尝试替换此:

@GenericGenerator(name="newGenerator",strategy = "foreign", parameters = { 
@Parameter(name="property",value="Student_Info")})

with this: 有了这个:

@GenericGenerator(name="newGenerator",strategy = "foreign", parameters = { 
@Parameter(name="property",value="student")})

When using foreign strategy, remember to use the property name instead of the Entity name. 使用外部策略时,请记住使用属性名称而不是实体名称。 The value should have been student instead of Student_Info . 该值应该是student而不是Student_Info

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从休眠中在线程“ main”中获取异常java.lang.NullPointerException - getting Exception in thread “main” java.lang.NullPointerException from hibernate 国际象棋程序的线程“main”java.lang.NullPointerException中的异常 - Exception in thread “main” java.lang.NullPointerException for my chess program 休眠测试-线程“ main”中的异常java.lang.NullPointerException - Hibernate Test - Exception in thread “main” java.lang.NullPointerException 线程“ main”中的异常java.lang.NullPointerException在休眠的OneToOne关系中吗? - Exception in thread “main” java.lang.NullPointerException In hibernate OneToOne Relation? Spring with Hibernate - 线程“main”java.lang.NullPointerException中的异常 - Spring with Hibernate - Exception in thread “main” java.lang.NullPointerException DVD分类程序中的线程“ main”中的异常java.lang.NullPointerException - Exception in thread “main” java.lang.NullPointerException in DVD sorting program 在线程“main”中获取错误异常 java.lang.NullPointerException - Getting error exception in thread "main" java.lang.NullPointerException 在线程“主”中获取异常java.lang.NullPointerException - Getting Exception in thread “main” java.lang.NullPointerException 在线程“主”中获取异常java.lang.NullPointerException错误 - Getting Exception in thread “main” java.lang.NullPointerException error 我在程序中得到了(线程“ main” java.lang.NullPointerException中的异常) - i get (Exception in thread “main” java.lang.NullPointerException) in my program
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM