2014-01-16 38 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

相关问题