【问题标题】:No validator could be found for type: java.lang.Long找不到类型的验证器:java.lang.Long
【发布时间】:2014-02-06 00:18:32
【问题描述】:

我正在尝试保留用户输入(一个问题:它的 id 是一个自动生成的值)但我收到了这个异常No validator could be found for type: 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();

    }

【问题讨论】:

  • 你有hibernate-validator.jar文件吗?
  • 我使用默认实现来持久化数据。我也必须下载那个jar吗?
  • 这只是一个猜测。前段时间我有一个类似的问题。下载此文件并放入您的构建路径。该文件的完整名称类似于 hibernate-validator-5.0.1.Final.jar
  • 好的,我试试看能不能解决我的问题
  • 不添加那个jar不能解决问题

标签: java jsf-2 glassfish


【解决方案1】:

根据@NotNull 注释的休眠API,@NotNull 仅适用于字符串。话虽如此,请确保您使用的 @NotNull 注释来自 javax.validation.constraints.NotNull 而不是 Hibernate 注释。

如果您将鼠标悬停在代码中的 @NotNull 上,它应该会告诉您它是来自 hibernate 还是 javax。

类似的帖子,你不妨看看Link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-24
    • 2015-01-02
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 2011-08-24
    相关资源
    最近更新 更多