2013-02-23 116 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值是一排空。我知道它不能將空值轉換爲原始數據類型long。所以我想知道有沒有其他方法可以跳過任何屬性的空值。 (我貼一個表類,和我有相同類型的類映射的多個表)

回答

1

的「的IsEnabled更改類型'設置爲'長',或者根據您的要求爲db架構中的列定義默認值。

+0

我已經知道我可以做到這一點。在這裏我發佈了一個表格註釋類。但我還有更多。如果我在註釋類中更改,我必須更改我的整個代碼... – Ram 2013-02-24 03:45:45

+0

然後提到你在問題中所知道的內容。其他人會知道你改變了/有很多沒有跟着寫一些測試的類。('I've much more') – Adi 2013-02-24 05:58:14

+0

我更新了。在大量搜索改變爲Long或BigDecimal對象或其他對象之後做的方式..謝謝你的建議... – Ram 2013-02-24 07:30:53

1

嘗試使用NOTFOUND註釋: 可能是你的問題將得到解決

@NotFound(action = NotFoundAction.IGNORE) 
+0

仍然我得到這個'空值被分配給原始類型setter的屬性'錯誤消息... – Ram 2013-02-24 03:43:55

+0

將原始長變爲長類 – MayurB 2013-02-24 03:56:32