2014-01-09 29 views
0

我有一個問題,我的豆模型,我只是無法弄清楚它爲什麼拋出一個空指針。JavaBeans拋出NullPointer而該字段不爲空

這裏是我的MessageModel:

@Entity 
@Table(name = "privateMessages") 
public class MessageModel { 

@Id 
@Column(unique = true, updatable = false) 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private int id; 

@Column(unique = false, updatable = false) 
private String userFrom; 

@Column(unique = false, updatable = false) 
private String userTo; 

@Column(unique = false, updatable = false) 
private String Message; 

@Column(unique = false, updatable = true) 
private Boolean isRead; 

@Column(unique = false, updatable = true) 
private Boolean isDeleted; 

@Column(unique = false, updatable = true) 
private String insertDate; 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getUserFrom() { 
    return userFrom; 
} 

public void setUserFrom(String userFrom) { 
    this.userFrom = userFrom; 
} 

public String getUserTo() { 
    return userTo; 
} 

public void setUserTo(String userTo) { 
    this.userTo = userTo; 
} 

public String getMessage() { 
    return Message; 
} 

public void setMessage(String message) { 
    Message = message; 
} 

public Boolean getRead() { 
    return isRead; 
} 

public void setRead(Boolean read) { 
    isRead = read; 
} 

public Boolean getDeleted() { 
    return isDeleted; 
} 

public void setDeleted(Boolean deleted) { 
    isDeleted = deleted; 
} 

public String getDate() { 
    return insertDate; 
} 

public void setDate(String date) { 
    insertDate = date; 
} 

} 

這裏是我用來設置變量的方法:

public void createUserNote(String msg, String playername, String playerto) { 
    MessageModel model = new MessageModel(); 

    model.setRead(false); 
    model.setUserFrom(playername); 
    model.setUserTo(playerto); 
    model.setDeleted(false); 
    model.setMessage(msg); 

    SimpleDateFormat format = new SimpleDateFormat("d M hh:mm"); 
    String date = format.format(new Date()); 
    model.setDate(date); 

    plugin.getDatabase().save(model); 
} 

也許你能幫幫我! 在此先感謝!

+0

當你說「該字段不爲空」時,你指的是什麼? – jarmod

+0

爲什麼@SintoKItteera我不認爲這個錯誤是? – Wouter

+0

我不知道Java,但是您將日期設置爲字符串而不是日期變量。如果你只是model.setDate(new Date()),會發生什麼? –

回答

1

insertDate成員重命名爲date,或將get/setDate重命名爲get/setInsertDate

看來某些庫正在使用反射來嘗試查找字段insertDate的getter/setter。由於setter與字段名稱不匹配(因此不符合JavaBean約定),因此無法使用特別無用的錯誤消息。

+0

獲取相同的奇怪錯誤,使用getinsertDate(因爲變量是insertDate – Wouter

+0

這工作,你真棒。謝謝!!!這個忙了幾天!!!!! – Wouter

2

我懷疑你的問題是它正在尋找一個名爲'getInsertDate()'的方法,但你已經將方法重命名爲getDate(),因此它不知道如何調用它。嘗試將getter和setter更改回默認命名並重試。

NullPointer可能是沿着無法獲得執行方法的線而不是執行該方法的失敗。

+1

消息說'get insertDate',而不是'getInsertDate':它似乎指的是該字段。 – Radiodef

+0

仍然收到相同的錯誤,所以這個DID沒有幫助。 – Wouter

+0

我已經說過與您標記爲解決方案完全相同的東西...儘管我想我沒有明確告訴您修復構造函數... – M21B8

相關問題