问题描述
我必须同时在项目和JPA中使用ValueObject,但是将属性更改为valueobject时却报错,我还不知道如何解决问题
此错误:(“Id”属性类型不应为“BrandCodigo”)(“基本”属性类型不应为“BrandNombre”)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity(name = "Brand")
@Table(name = "marcas",uniqueConstraints = {
@UniqueConstraint(name = "uk_marcas_nombre",columnNames = "nombre")
})
public class Brand {
@Id
@Column(name = "codigo")
private BrandCodigo codigo;
@Column(name = "nombre",nullable = false,columnDeFinition = "varchar(80)"
)
private BrandNombre nombre;
}
解决方法
当您提到 lombok 的 @Value 时,这是不可能的 afaik。 Lombok 的 @Value 用于不可变对象。
但是您的实体必须是可变的,因为 JPA 构造它的方式。
此外,值对象没有身份,但数据库实体应该有主键。