如何将 DTO 映射到 JPA 中没有 @GenerateValue 字段的实体

问题描述 投票:0回答:1

我有一个带有某些字段的DTO类,我试图在实体类中映射DTO,在我的实体类中我有一个id字段(生成值),但在DTO中没有,因为我不需要设置ID。

我有一个 DTO 课程:

@Data
public class ExampleDTO {

private String someField1
private String someField2

}

我有一个实体类:

public class exampleEntity {
@Id
@GeneratedValue
private Long id;

private String someField1
private String someField2
}


这就是我试图在这里绘制地图的方式:

ExampleJpaEntity exampleDTOtoExampleEntity(ExampleDTO exampleDTO) {
        return new ExampleJpaEntity(
                exampleDTO.getSomeField1,
                              exampleDTO.getSomeField2));
    }

但它不起作用,因为它还想映射字段@id,问题是我不想要,因为我 我的 DTO 班级没有 id

我该怎么办?因为逻辑上@Id是由JPA生成的

感谢您的帮助

jpa mapping entity dto
1个回答
0
投票

您应该在 exampleEntity 类中添加构造函数。

    public class exampleEntity {
@Id
@GeneratedValue
private Long id;

private String someField1;
private String someField2;

public exampleEntity(String someField1, String someField2) {
    this.someField1 = someField1;
    this.someField2 = someField2;
}
}
© www.soinside.com 2019 - 2024. All rights reserved.