我想用數據庫中的某些值填充簡單的h:datatable標記。但我得到一個例外,我無法找到是什麼原因:從數據庫返回值時的數字格式異常(JPA)
java.lang.NumberFormatException:對於輸入字符串:「URL」
這是我如何創建數據表:
<h:form>
<h:dataTable value="#{managementBB.retrieveRecords()}" var="record">
<h:column>
<f:facet name="header">URL</f:facet>
#{record.url}
</h:column>
<h:column>
<f:facet name="header">Submition date</f:facet>
#{record.submitionDate}
</h:column>
<h:column>
<f:facet name="header">Unacceptable</f:facet>
#{record.unnaceptableContent}
</h:column>
<h:column>
<f:facet name="header">Option</f:facet>
Something
</h:column>
</h:dataTable>
</h:form>
這是此頁後面的支持bean:
@Named("managementBB")
@SessionScoped
public class ManagementBB implements Serializable{
@EJB
private ILinkManagerEJB linkManagerEJB;
public List<Record> retrieveRecords() {
return linkManagerEJB.retrieveRecords();
}
}
這個我s表示訪問數據庫的EJB來獲取數據:
@Stateless(name = "ejbs/LinkManagerEJB")
public class LinkManagerEJB implements ILinkManagerEJB {
@PersistenceContext
private EntityManager entityManager;
public List<Record> retrieveRecords() {
Query allRecords = entityManager.createNamedQuery("allrecordinfo");
return (List<Record>) allRecords.getResultList();
}
}
最後這是表示在數據庫中的一行的JPA實體:
@Entity
@NamedQueries({@NamedQuery(name = "allrecordinfo",
query = "SELECT r.url, r.submitionDate, r.unnaceptableContent FROM Record r")})
public class Record {
@Id
@GeneratedValue
private long id;
@Column(nullable = false)
private String url;
@Column(nullable = false)
private String submitionDate;
@Column(nullable = false)
private boolean unnaceptableContent;
//Get set methods ...
}
正如你看到的,它看起來簡單,我以前做過這個但現在我很困惑,我不知道爲什麼不工作。你能幫我找到我的錯誤嗎?
注:我是非常有信心的是,查詢語法是OK(我在Eclipse的剪貼簿測試過)
這就是正確的感謝Ammar。我會在10分鐘內接受你的回答。 :) – sfrj