對,我一直在這個項目上工作了一段時間,而且我正在使用JDBC + JSF。我現在有3個DAO,用戶,組和用戶組。JDBC多對一映射/空指針異常錯誤
我的問題是..如何建立3個類,用戶,組和UserGroups之間的關係?
在我的數據庫中,UserGroup是一個關聯實體,它具有IDUSer和IDGroup作爲主複合關鍵字。
User和UserGroup之間的關係是1到Many。組和UserGroup之間的關係也是1對多,UserGroup與用戶和組都有多對一的關係。
如果我想創建User和UserGroup,Group和UserGroup之間的關係,這是正確的嗎?
public class UsuariousGrupos {
Integer id_usuario;
Integer id_grupo;
Grupos groups;
Usuarious users;
public UsuariousGrupos() {
}
public UsuariousGrupos(Integer id_usuario, Integer id_grupo) {
this.id_usuario = id_usuario;
this.id_grupo = id_grupo;
}
public Integer getId_grupo() {
return id_grupo;
}
public void setId_grupo(Integer id_grupo) {
this.id_grupo = id_grupo;
}
public Integer getId_usuario() {
return id_usuario;
}
public void setId_usuario(Integer id_usuario) {
this.id_usuario = id_usuario;
}
public Grupos getGroups() {
return groups;
}
public void setGroups(Grupos groups) {
this.groups = groups;
}
public Usuarious getUsers() {
return users;
}
public void setUsers(Usuarious users) {
this.users = users;
}
此外,我測試了我的DAO連接,他們工作正常。我能夠從我的用戶數據庫表和組數據庫表中顯示名稱/描述。但是,由於我的UserGroup表只存儲了ID,所以我只能顯示這些ID。我想顯示與ID相關的用戶/組的名稱/描述。然而,當我做到以下幾點:
List<UsuariousGrupos> ugdList = ugd.list() ;
System.out.println("List of users successfully queried: " + ugdList);
System.out.println("Thus, amount of usergroups in database is: " + ugdList.size());
for (int i = 0; i < ugdList.size(); i++) {
System.out.println("Groups in database are: " + ugdList.get(i).getUsers().getNome());
System.out.println("Users in database are: " + ugdList.get(i).getGroups().getDescricao());
}
我在線程「主要」顯示java.lang.NullPointerException得到一個例外。顯然,我無法從我的用戶組列表中訪問用戶和組對象:/,這導致我認爲我錯過了類之間的某種關係。
的零指示字例外發生在這些行:
System.out.println("Groups in database are: " + ugdList.get(i).getUsers().getNome());
System.out.println("Users in database are: " + ugdList.get(i).getGroups().getDescricao()
顯然,ugdList.get(ⅰ).getUsers()和ugdList.get(ⅰ).getGroups()都爲空。
對此有何看法?
您需要提供實際的異常,或者更具體地指定爲空的行/字段。更好的辦法是讓你調試你的代碼並找出哪個變量爲空,並用這些信息編輯你的問題。 – Gray