Я новичок в Java и создаю приложение в JSF и Hibernate.
У меня есть форма, в которой есть несколько полей ввода, но только одно поле будет целым числом, возрастом.Остальные из них будут струнами.Возраст не является обязательным полем, поэтому пользователь может ввести его или нет, но мое приложение должно вставить пустую или пустую строку в БД, если поле оставлено пустым.Я выполнил обработку ошибок, если пользователь вручную вводит символ, отличный от числа, но я хочу разрешить пользователю ничего не вводить и все еще иметь возможность отправки, поэтому я допускаю пустую строку.Вот где моя проблема.Мой метод createUser, который вызывает оператор вставки в моей БД, требует Int, поэтому я решил, что мог бы передать NULL, и это сработало бы, но я получаю исключение нулевого указателя, когда я устанавливаю поле в нуль.Ниже приведен снимок моего кода.
Я пропустил весь другой код и упростил его, просто вставив нового пользователя, передав значение Age.
//inside UserManager.java file
public void createUser(ActionEvent event) {
String age = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("createAge");
try {
//check to make sure that it is not empty
Integer ageInt = null;
if(!age.equals("") ) {
ageInt = new Integer(age).intValue();
}
userDao.createUser(ageInt);
}
catch(Exception e) {
e.fillInStackTrace();
}
}
//inside UserDao.java file
public void createUser(Integer age) {
Session sess = getSessionFactory().openSession();
try {
Query.insertUser = session.createSQLQuery("CALL inser_user(:age)");
insertUser.setInteger("age", age);
insertUser.executeUpdate();
}
catch(HibernateException e) {
throw new HibernateException(e);
} finally {
session.close();
}
}