我拥有以下实体:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Version;
import javax.validation.constraints.NotNull;
@Entity
@Table(name = "authentication_certificate")
public class Certificate {
@Column(name = "body", nullable = false)
@NotNull
private byte[] body;
生成的元模型类代码为:
package bm.authentication;
import @javax.validation.constraints.NotNull byte;
import javax.annotation.processing.Generated;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor", date="2020-11-20T16:29:34", comments="EclipseLink-2.7.6.v20200427-rNA")
@StaticMetamodel(Certificate.class)
public class Certificate_ extends UuidIdEntity_ {
...
public static volatile SingularAttribute<Certificate, NotNull byte[]> body;
...
如您所见,生成的行
import @javax.validation.constraints.NotNull byte
..
public static volatile SingularAttribute<Certificate, NotNull byte[]> body;
不要编译。。
当我删除@notnull注解时,代码会正确生成,但是我失去了在这些字段上使用java验证api的能力。我意识到这个问题只发生在二进制类型上,我可以在其他类型的字段中保留@notnull。
一些有用的附加信息我使用eclipselink-2.7.4/eclipselink-2.7.6从fish.payara.extras/payara-embedded-all从payara 5导入,作为从payara 4迁移的一部分。在payara 4代码中工作正常。
暂无答案!
目前还没有任何答案,快来回答吧!