我是新來的JSF和Java EE和我一直在掙扎堅持實體命名的客房擁有一個或多個牀,它由以下代碼:如何將對象添加到另一個對象的列表中並將其保存到JSF中?
package ninfa.javahostel.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class Bed {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
private Room room;
private Integer number;
private Double pricePerNight;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Room getRoom() {
return room;
}
public void setRoom(Room room) {
this.room = room;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public Double getPricePerNight() {
return pricePerNight;
}
public void setPricePerNight(Double pricePerNight) {
this.pricePerNight = pricePerNight;
}
}
實體間組成的下面的代碼:
package ninfa.javahostel.domain;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class Room {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String number;
@OneToMany (cascade = CascadeType.ALL, mappedBy = "room")
private Set<Bed> beds;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public Set<Bed> getBeds() {
return beds;
}
public void setBeds(Set<Bed> beds) {
this.beds = beds;
}
}
我有用於保留,並從dabatase對象bedRegistrationService和用於保留客房一個roomRegistrationService。 除此之外,我只有一個負責所有事情的控制器,我知道架構非常糟糕,但我只是試圖實現一個簡單的CRUD並習慣JSF。代碼如下(我試了碼跨度反引號,但他們似乎沒有工作):
牀轉換器:https://pastebin.com/b1ZwYS75
roomRegistrationService:https://pastebin.com/sBaDzrfh
bedRegistrationService:https://pastebin.com/jjsMbVPA
這個RegistrationController:https://pastebin.com/cfZeB16d
roomcreate.xhtml:https://pastebin.com/UMCcW7U7
表與數據庫中的
所有的牀正確呈現每當我試圖提交我得到控制檯以下錯誤:10:07:08205 INFO [javax.enterprise.resource.webcontainer。 jsf.renderkit](默認任務-35)警告:FacesMessage已被入隊,但可能未被顯示。 的SourceID = roomRegForm:j_idt41 [嚴重性=(ERROR 2),彙總=(roomRegForm:j_idt41:驗證錯誤:值是無效的),細節=(roomRegForm:j_idt41:驗證錯誤:值是無效的)]
考慮到我可能不得不使用bed.number作爲xhtml而不是bed的值(因爲轉換器解析html字符串並將其轉換爲Bed,我試圖改爲bed.number,以查看會發生什麼以及發生以下情況:
不知道爲什麼會顯示「on」而不是錯誤的值,我覺得這很無助,我認爲這可能與轉換器或我缺乏表達式語言知識有關。目標是堅持一個或多個牀位的房間ogize爲糟糕的英語和新手問題,但我一直堅持這個問題好幾天。先謝謝您的幫助。
我想我看到了這個問題,但是在將來你應該真的創建一個最小的再現器,而不是傾銷你所有的代碼。你將更有可能得到答案,或者在過程中自己弄清楚。 –
並做正確的標記...問題在99.5%的時間NOT jpa和jsf在同一時間相關。 – Kukeltje
我會說這是JSF相關... –