【发布时间】:2021-04-26 15:00:24
【问题描述】:
我必须在项目和JPA中同时使用ValueObject,但是将属性更改为valueobject时出现错误,我还不知道如何解决问题
这个错误:('Id' 属性类型不应该是'BrandCodigo')('Basic' 属性类型不应该是'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;
}
【问题讨论】:
-
您遇到了什么错误?
-
'Id' 属性类型不应为 'BrandCodigo'
-
您希望此对象模型采用哪种表结构?品牌是否会引用 BrandNombre 和 BrandCodigo 表 - 或者这些只是品牌表中的单个数据字段。如果是后者,您需要指定 JPA 将如何从您的值对象中提取相关数据;通过使其成为可嵌入的,告诉它什么是相关的,什么是不相关的。如果它们是表,则需要将它们设置为实体,并酌情使用 OneToOne 和 ManyToOne 引用映射。
-
这两个是非表属性,只有那个属性是ValueObjects,我希望JPA把我读作ValueObject作为一个属性,我不会产生错误
标签: java spring jpa value-objects