2014-09-23 3 views
-2

при работе над проектом с использованием Hibernate, JSF, у меня возникла проблема. Из-за того, что кажется, у моей программы есть проблема с хранением данных с помощью метода addTemp, используемого в этом Roofhelper.java файлHibernate Database session.save не добавляет запись в базу данных

public class RoofHelper { 

SessionFactory factory = NewHibernateUtil.getSessionFactory(); 

public static void main(String[] args) { 

    RoofHelper RoofM = new RoofHelper(); 

} 

public String emailAvailable(String email) { 
    String result; 
    Transaction tx = null; 
    Session session = null; 
    session = factory.openSession(); 
    try { 
     tx = session.beginTransaction(); 
     Query query = session.createQuery("from User user where user.email= :email").setParameter("email", email); 
     User user = (User) query.uniqueResult(); 
     tx.commit(); 
     if (user == null) { 
      result = "a"; 
     } else { 
      result = "na"; 
     } 

    } catch (HibernateException e) { 
     if (tx != null) { 
      tx.rollback(); 
     } 
     e.printStackTrace(); 
     result = "dbp"; 
    } finally { 
     session.close(); 
    } 
    return result; 
} 

/* Add to database a temp user */ 
public String addTemp(String email, String password, String fname, String lname, int phoneNumber, Boolean buyer, Boolean seller, Boolean renter, Boolean tenant) { 
    String result; 
    Session session = null; 
    session = factory.openSession(); 
    Transaction tx = null; 
    try { 
     tx = session.beginTransaction(); 
     Temp temp = new Temp(fname, lname, email, password, phoneNumber, buyer, seller, renter, tenant); 
     session.persist(temp); 
     tx.commit(); 
     result = "s"; // success 
    } catch (HibernateException e) { 
     if (tx != null) { 
      tx.rollback(); 
      result = "f";//failure 
     } 
     result = "ff"; 
     e.printStackTrace(); 
    } finally { 
     session.close(); 
    } 
    return result; 
} 

}

в то время как метод emailAvailable выполняет только штраф, addTemp просто застрял с возвратом "FF" строку.

+2

Ну. В этом случае Hibernate бросает исключение. Что такое stacktrace? – Desorder

+0

Привет, @Desorder, проверьте этот txt, я думаю, у него есть информация с выхода Tomcat Apache https://dl.dropboxusercontent.com/u/48247518/stuff.txt – sobek

+0

Я уверен, что все это сводится к этой проблеме: org. hibernate.PropertyValueException: свойство null-null ссылается на значение null или переходное: roof.Temp.email – sobek

ответ

1
org.hibernate.PropertyValueException: not-null property references a null or transient value : roof.Temp.email 
    at org.hibernate.engine.internal.Nullability.checkNullability(Nullability.java:106) 
    at org.hibernate.action.internal.AbstractEntityInsertAction.nullifyTransientReferencesIfNotAlready(AbstractEntityInsertAction.java:132) 
    ... 

В вашей stacktrace говорится, что Hibernate жалуется на то, что поле электронной почты является нулевым. Правильно ли вы устанавливаете это поле?

+0

Хорошо, я на нем. – sobek

Смежные вопросы