получение исключения в потоке "main" java.lang.NullPointerException из спящего режима - PullRequest
0 голосов
/ 22 сентября 2018

Почему я получаю эту ошибку, даже когда я запускаю только привет программу (в отдельном Java-проекте).на самом деле эта ошибка происходит из спящего режима, но кто-нибудь может объяснить мне, в чем проблема и где она и как ее исправить.

Пожалуйста, найдите мой код спящего режима:

public static void main(String[] args) {

    Student_Info student_Info = new Student_Info();

    student_Info.setName("xyz");
    student_Info.setRollNo(101);
    student_Info.setLastName("kumar");
    student_Info.setRecordUpdatedDate(new Date());
    student_Info.setRecordUpdatedTime(new Date());
    student_Info.setRecordUpdatedOn(new Date());
    student_Info.setIsActive(false);
    student_Info.setDescription("hi this is xyz.");

    Session session = HibernateUtil.getCurrentSession();
    Transaction transaction = null;
    try {
        transaction = session.beginTransaction();
        session.save(student_Info);
        transaction.commit();
    }catch (Exception e) {
        if (transaction != null)
            transaction.rollback();
        e.printStackTrace();
    } finally {
        session.close();                            //close session
        HibernateUtil.getSessionFactory().close();  //close sessionFactory
    }
}

Пожалуйста, найдитекод Student_Info

@Entity @Table(name="student")

открытый класс Student_Info {

@Id
@GeneratedValue
private int rollNo;

private String name;

@Transient
@Column(name="lastName", nullable=false)
private String lastName;

@Temporal(TemporalType.DATE)
private Date recordUpdatedDate;

@Temporal(TemporalType.TIME)
private Date recordUpdatedTime;

private Date recordUpdatedOn;

private Boolean isActive;

@Lob
private String description;

public String getDescription() {
    return description;
}
public void setDescription(String description) {
    this.description = description;
}
public Boolean getIsActive() {
    return isActive;
}
public void setIsActive(Boolean isActive) {
    this.isActive = isActive;
}


public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getRollNo() {
    return rollNo;
}
public void setRollNo(int rollNo) {
    this.rollNo = rollNo;
}

public String getLastName() {
    return lastName;
}
public void setLastName(String lastName) {
    this.lastName = lastName;
}

public Date getRecordUpdatedDate() {
    return recordUpdatedDate;
}
public void setRecordUpdatedDate(Date recordUpdatedDate) {
    this.recordUpdatedDate = recordUpdatedDate;
}
public Date getRecordUpdatedTime() {
    return recordUpdatedTime;
}
public void setRecordUpdatedTime(Date recordUpdatedTime) {
    this.recordUpdatedTime = recordUpdatedTime;
}
public Date getRecordUpdatedOn() {
    return recordUpdatedOn;
}
public void setRecordUpdatedOn(Date recordUpdatedOn) {
    this.recordUpdatedOn = recordUpdatedOn;
}

}

enter image description here

1 Ответ

0 голосов
/ 22 сентября 2018

Я думаю, что у вас проблемы с транзакцией.Можете ли вы изменить код транзакции вместо своего.

Transaction transObj = null;
Session sessionObj = null;
try {
    sessionObj = HibernateUtil.buildSessionFactory().openSession();
    transObj = sessionObj.beginTransaction();
    transObj.commit();
} catch (HibernateException exObj) {
    if(transObj!=null){
        transObj.rollback();
    }
    exObj.printStackTrace(); 
} finally {
    sessionObj.close(); 
}

Поскольку вы используете

Session session = HibernateUtil.getCurrentSession();

, но у вас нет currentSession.Так что это будет выбрасывать NullPointerException когда session.beginTransaction();звонки.В моем решении сессия начинается с BuildSessionFactory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...