我試圖堅持一個用戶輸入(一個問題:它的id是一個自動生成的值),但我得到這個異常No validator could be found for type: java.lang.Long
。找不到類型驗證器:java.lang.Long
這是JSF頁面
<p:panel style="margin-left:30%">
<h:panelGrid columns="1" styleClass="grid">
<h:form id="form">
<h3>Titre</h3>
<p:inputText placeholder="Donner un titre significatif" size="56" value="#{questionBean.newQuestion.titre}"></p:inputText><br/>
<p:editor id="editor" width="600" value="#{questionBean.newQuestion.contenu}"/>
<h:panelGrid columns="2" style="margin-top:10px">
<p:commandButton id="submitButton" value="Poser Question" action="#{questionBean.create}"/>
</h:panelGrid>
</h:form>
</h:panelGrid>
</p:panel>
的代碼,這是的managedBean
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.model.SelectItem;
import com.portail.dao.DaoQuestion;
import com.portail.entities.Question;
@ManagedBean(name="questionBean")
@SessionScoped
public class QuestionBean implements java.io.Serializable {
private List<SelectItem> questItems;
private DataModel questions;
private List<Question> questionsEtudiant;
private List<Question> questionsProfesseur;
private Question newQuestion= new Question();
private Question editQuestion;
private List<Question> questionsForums;
private List<Question> questionssansreponses;
private DaoQuestion qDao=new DaoQuestion();
public String create(){
qDao.ajouter(newQuestion);
newQuestion= new Question();
System.out.println("question ajouter ");
questions.setWrappedData(qDao.selectAll());
return"list";
}
代碼而這是實體的代碼
@Entity(name="Question")
@Table(name="QUESTION")
@NamedQuery(name="Question.findAll", query="SELECT q FROM Question q")
public class Question implements Serializable {
private static final long serialVersionUID = 1L;
@SequenceGenerator(name="seq_ques",sequenceName="SEQ_PK_QUES",initialValue=1, allocationSize=1)
@Id
@NotNull
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq_ques")
@Column(name="QUES_PK")
private long quesPk;
@Column(length=200)
private String contenu;
@Temporal(TemporalType.DATE)
private Date datecreation;
@Temporal(TemporalType.DATE)
private Date dateedition;
@Temporal(TemporalType.DATE)
private Date datemodification;
private int nbdownvote;
private int nbupvote;
@Column(length=300,unique=true)
private String titre;
而且這是用於堅持問題的DAO類的代碼
public class DaoQuestion {
private static final String JPA_UNIT_NAME="Portail";
private EntityManager entityManager;
protected EntityManager getEntityManager() {
if (entityManager == null) {
entityManager = Persistence.createEntityManagerFactory(
JPA_UNIT_NAME).createEntityManager();
}
return entityManager;
}
public void ajouter(Question q)
{
EntityTransaction tx = getEntityManager().getTransaction();
tx.begin();
entityManager.persist(q);
tx.commit();
}
你有冬眠,validator.jar文件? – Susie
我正在使用默認的實現來保存數據。我還必須下載那個罐子嗎? – MeknessiHamida
這只是一個猜測。前段時間我有一些類似的問題。下載此文件並放入您的構建路徑。這個文件的完整名稱將看起來像這樣hibernate-validator-5.0.1.Final.jar – Susie