Java 实体与DTO关联的实体
我想询问一个将实体与关联实体转换为DTO的良好实践 例如,我有3个优点:Java 实体与DTO关联的实体,java,hibernate,persistence,Java,Hibernate,Persistence,我想询问一个将实体与关联实体转换为DTO的良好实践 例如,我有3个优点: @Entity @Table public class First { @Id private int id; @OneToMany(mappedBy = "first") ... private List<Second> second; @ManyToOne ... private Third third; @Entity @Table
@Entity
@Table
public class First {
@Id
private int id;
@OneToMany(mappedBy = "first")
...
private List<Second> second;
@ManyToOne
...
private Third third;
@Entity
@Table
public class Second {
@Id
private int id;
@ManyToOne
...
private First first;
@OneToMany(mappedBy = "second")
...
private List<Third> third;
@Entity
@Table
public class Third {
@Id
private int id;
@ManyToOne
...
private Second second;
@OneToMany(mappedBy = "third")
...
private List<First> first;
@实体
@桌子
头等舱{
@身份证
私有int-id;
@OneToMany(mappedBy=“first”)
...
私人名单第二;
@许多酮
...
私人第三方;
@实体
@桌子
公共二等舱{
@身份证
私有int-id;
@许多酮
...
私人优先;
@OneToMany(mappedBy=“秒”)
...
私人名单第三;
@实体
@桌子
公共三等舱{
@身份证
私有int-id;
@许多酮
...
私人第二;
@OneToMany(mappedBy=“third”)
...
私人名单优先;
将所有这些转换为DTO的最佳实践是什么?
我不想使用外部库
正如您所看到的,问题在于它和嵌套关联的重复出现
你好
编辑:
有人能告诉我他自己使用的映射DTO的库的名称吗?这可能会有帮助:
我建议使用自定义dto以避免循环(导致StackOverflowerError)。管理正在传输的内容具有优势。使用上面的entity类,我构建了下面的dto
我对龙目山有依赖性,比如“org.projectlombok”%“lombok”%lombokVersion 以我的身材 构建我的自定义DTO
@Data
public class FirstDTO implements Jsonable {
protected String id;
protected ThirdDTO third;
public FirstDTO(){}
@JsonCreator
public FirstDTO(@JsonProperty("id") String id,
@JsonProperty("third") Third third){
this.id = id;
this.third = third;
}
}
这可能有助于:
我建议使用自定义dto以避免循环(导致StackOverflowerError)。管理正在传输的内容具有优势。使用上面的entity类,我构建了下面的dto
我对龙目山有依赖性,比如“org.projectlombok”%“lombok”%lombokVersion 以我的身材 构建我的自定义DTO
@Data
public class FirstDTO implements Jsonable {
protected String id;
protected ThirdDTO third;
public FirstDTO(){}
@JsonCreator
public FirstDTO(@JsonProperty("id") String id,
@JsonProperty("third") Third third){
this.id = id;
this.third = third;
}
}
这种从实体到DTO的映射,以及从实体到DTO的映射,总是会归结为一些非平凡的映射代码,通常涉及到解析相关字段的反射,以及在映射中存储引用以解析周期。最终,这本身通常会成为一个非常耗时的项目,而且很可能你会我将重新发明轮子。我强烈建议寻找一个合适的映射库。因此,没有更好的方法可以做到这一点吗?你能告诉我该库的名称吗?我在互联网上找到了一些,但根据你的经验,也许你可以给我一个。我在这方面取得了很好的效果。它相对容易配置,甚至涵盖了非常复杂的它可以很容易地处理循环和继承。Orika是另一个好的、无xml的库,这种从实体到DTO的映射,反之亦然,总是可以归结为一些非平凡的映射代码,通常涉及反射以解析相关字段,并在映射中存储引用以解析循环。在一天结束时我通常会变成一个非常耗时的项目,而且你很可能会重新发明轮子。我强烈建议你找一个合适的地图库。所以,没有更好的方法可以做到这一点吗?你能告诉我那个库的名称吗?我在网上找到了一些,但也许你可以从你的经验中给我一个ence.我在这方面取得了很好的效果。它相对容易配置,甚至涵盖了相当复杂的用例。它可以轻松处理循环和继承。Orika是另一个v.好的、无xml的库