Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
找不到类型为java.lang.Object的验证器_Java_Validation_Generics - Fatal编程技术网

找不到类型为java.lang.Object的验证器

找不到类型为java.lang.Object的验证器,java,validation,generics,Java,Validation,Generics,我在我的项目中使用了javax.validationAPI,在一些开发人员机器和测试服务器上出现了名义上的问题。在其他开发人员机器上,尽管我们使用的是maven处理的同一个Glassfish版本、IDE和库堆栈,但这个bug无法重现 调试此问题时,我们怀疑可能是问题的原因(我们无法在编译类内部进行调试,因此“怀疑”)—我们为持久化实体提供了一个接口: public interface PersistableEntity<T> { public T getId();

我在我的项目中使用了
javax.validation
API,在一些开发人员机器和测试服务器上出现了名义上的问题。在其他开发人员机器上,尽管我们使用的是maven处理的同一个Glassfish版本、IDE和库堆栈,但这个bug无法重现

调试此问题时,我们怀疑可能是问题的原因(我们无法在编译类内部进行调试,因此“怀疑”)—我们为持久化实体提供了一个接口:

public interface PersistableEntity<T> {

    public T getId();

    public void setId(T id);
}
公共接口PersistableEntity{
公共T getId();
公共无效设置id(T id);
}
实现类按“id”字段类型进行拆分:
String
BigDecimal
@Pattern
约束附加到
PersistableEntity
实现中的
id
字段的getter

如果这是原因,是否可以使用
javax.validation
维护验证,同时使用泛型

更新 我们决定从JSR303转移到定制的可配置验证机制。如果有人有名义上的问题找到了解决方案,请让我知道它是哪一个,我会将其标记为答案(欢迎有经验的用户提供此难题的任何其他解决方案)。

我通常使用Spring数据接口,但这个想法似乎与您的自定义解决方案相同

假设我的
user
表有两个字段:
user\u id
(PK)和
email
(NN)。JAVA
User
实体将有一个
getUserId()
getter和一个
getEmail()

实现
Persistable
接口时,必须重写
getId()
getter,而表
user
不包含
id
字段。通过使用注释,您可以显式地告诉JAVA相应的表不包含这样的字段:

@Entity
@Table(name = "user")
public class User implements Persistable<Integer> {

    // Persistable implementation

    @Override
    @Transient // <-- means "not a database field"
    public Integer getId() {
        return getUserId();
    }

    // user_id

    @Column(name = "user_id", precision = 10)
    @GeneratedValue
    @Id
    public Integer getUserId() {
        return userId;
    }

    // email

    @NotNull
    @Column(name = "email", nullable = false, unique = true)
    public String getEmail() {
        return email;
    }

}
@实体
@表(name=“user”)
公共类用户实现持久化{
//持久性实现
@凌驾

@Transient//能否提供实现此PersistableEntity接口的实体?()@sp00m,我们有一个大的持久实体层次结构树,最后有相对较大的POJO类,很难在这里列出。这个问题现在已经过时了,但无论如何,谢谢:)我想其他有同样问题的人会发现你的答案很有帮助。