2014-01-16 40 views
0

我試圖堅持一個用戶輸入(一個問題:它的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(); 

    } 
+0

你有冬眠,validator.jar文件? – Susie

+0

我正在使用默認的實現來保存數據。我還必須下載那個罐子嗎? – MeknessiHamida

+0

這只是一個猜測。前段時間我有一些類似的問題。下載此文件並放入您的構建路徑。這個文件的完整名稱將看起來像這樣hibernate-validator-5.0.1.Final.jar – Susie

回答

3

根據@NotNull註釋的hibernate API,@NotNull僅適用於String。這樣說的話,確保你使用的@NotNull註釋是從javax.validation.constraints.NotNull而不是Hibernate註釋。

如果您將鼠標懸停在代碼中的@NotNull上,它會告訴您它是來自休眠還是javax。

類似的職位,你可能想看看Link

+1

它是從javax,但仍然無法正常工作 – MeknessiHamida

相關問題