首页 > 解决方案 > 将 Value 对象与 JPA 一起使用时出现问题

问题描述

我必须同时在项目和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;

}

标签: javaspringjpavalue-objects

解决方案


当您提到 lombok 的 @Value 时,这是不可能的。Lombok 的 @Value 用于不可变对象。

但是您的实体需要是可变的,因为 JPA 构造它的方式。

此外,值对象没有身份,但数据库实体应该有主键。


推荐阅读