【问题标题】:@NotEmpty annotation validator for oneToManyoneToMany 的 @NotEmpty 注释验证器
【发布时间】:2015-02-10 15:15:17
【问题描述】:

所以我有以下模型:

@Entity
@Table(name = "Project")
public class Project implements java.io.Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "PROJECT_ID", unique = true, nullable = false)
    private int projectId;
    private String name;

    ...

    @ManyToOne
    @JoinColumn(name = "MANAGER_ID")
    @NotEmpty(message = "test")
    private User manager;
    ....
}

由于某种原因,“@NotEmpty”注释在以下情况下会出现以下错误 输入为空:

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是 javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: com.springmvc.model.User.

我通过以下方式将我的值传递给后端:

<form:select path="manager" class="selectpicker form-control">
    <form:option value="" >Alle managers</form:option>
         <c:forEach var="manager" items="${managers}">
         <form:option value="${manager.userId}" >${manager.getUserDetail().firstName}               
                             ${manager.getUserDetail().lastName}</form:option>
         </c:forEach>
</form:select>

我做错了什么?

【问题讨论】:

    标签: spring hibernate spring-mvc spring-security


    【解决方案1】:

    将@NotEmpty 替换为@NotNull,应该可以解决您的问题。

    【讨论】:

    • 谢谢,这有效,但是我目前收到以下错误:无法将 java.lang.String 类型的属性值转换为属性管理器所需的 com.springmvc.model.User 类型;嵌套异常是 java.lang.NumberFormatException:对于输入字符串:“”。我已经编辑了我的问题以显示我的 html
    • 是的,那是因为您正在传递一个字符串,并且您正在尝试针对用户对象验证它。这是全新的问题。
    • 我建议为您面临的问题创建一个新问题,因为它不一定限制 Thymeleaf 并关闭此问题(仍然有效,因为没有接受的答案)。
    猜你喜欢
    • 2014-10-05
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多