2013-02-23 7 views
1

Я работаю в Hibernate 3.3. Недавно я начал использовать критерии. Мой класс аннотаций выглядит следующим образом ..criteria.list() показывает исключение нулевой указатель

@Entity 
@Table(name = "EMAG_ADMINLOGIN", schema = "EMAG_USER") 
public class Adminlogin implements java.io.Serializable { 

private String username; 
private String password; 
private String fullname; 
private long isenabled; 

@Id 
@Column(name = "USERNAME", unique = true, nullable = false, length = 40) 
public String getUsername() { 
    return this.username; 
} 

public void setUsername(String username) { 
    this.username = username; 
} 
@Column(name = "PASSWORD", length = 40) 
public String getPassword() { 
    return this.password; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

@Column(name = "FULLNAME", nullable = false, length = 100) 
public String getFullname() { 
    return this.fullname; 
} 

public void setFullname(String fullname) { 
    this.fullname = fullname; 
} 
@Column(name = "ISENABLED", precision = 0) 
public long getIsenabled() { 
    return this.isenabled; 
} 

public void setIsenabled(long isenabled) { 
    this.isenabled = isenabled; 
} 
} 

И мой критерий код выглядит следующим образом

Criteria criteria=session.createCriteria(Adminlogin.class); 
criteria=criteria.add(Restrictions.eq("username", "admin")); 
List list=criteria.list(); 

этот код показывает ошибку, когда значение IsEnabled равно нулю на строке. Я знаю, что он не может преобразовать значение null в примитивный тип данных long. Поэтому я хочу знать, есть ли другой способ пропустить нулевое значение любого свойства. (Я отправил одного класса таблицы, и у меня есть несколько таблиц с такой же отображений класса)

ответ

1

Изменить тип «IsEnabled 'до' Long 'или имеет значение по умолчанию для столбца в схеме db на основе ваших требований.

+0

Я уже знаю, что могу это сделать. Здесь я разместил один класс, аннотированный по таблице. Но у меня гораздо больше. Если я изменяю класс аннотации, я должен изменить весь код ... – Ram

+0

Затем укажите, что вы знаете в своем вопросе. Другие узнают, что вы изменили/у вас есть класс, который не соответствовал написанию некоторых тестов. («У меня много больше») – Adi

+0

Я обновил .. После того, как многие поисковые запросы переходят на объект Long или BigDecimal или какой-либо другой объект, способ сделать это .. Спасибо за ваше предложение ... – Ram

1

Попробуйте использовать NotFound аннотацию: может быть ваша проблема будет решена

@NotFound(action = NotFoundAction.IGNORE) 
+0

все еще я получаю это «Нулевое значение присваивается свойству примитивного типа setter» сообщение об ошибке ... – Ram

+0

Измените примитив длинный на длинный класс – MayurB

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