我对DTO类表示有疑问。我的数据库上有两个表,其中一个在另一个表上有两个外键,例如:
book(id, author_name, author_age)
author(name, age, telephone)
其中book author_name和author_age是作者姓名和年龄的外键。
一般来说,在DTO课上实施这种情况的最佳方法是什么? 在Book DTO中,最好做一些像:
public class Book {
private String id;
private Author author;
}
或类似
public class Book {
private String id;
private String author_name;
private int author_age;
}
答案 0 :(得分:1)
DTO是用于通过通信信道通过http或https大部分时间传输值的对象。
注意:将您的属性设为公开而非私有。
我们应该尽可能简单。
所以像
一样使用它public class Book {
public String id;
public String author_name;
public int author_age;
}
如果您将没有Author对象与DTO的DTO与Author对象转换为json或xml进行比较,那么没有Author的DTO的大小会更小。
在Book Book中使用Author时,您只需添加额外的包装器(对于author_name和author_age),这会使您在通信渠道上花费更多。
如果Book有多个作者,或者你需要做一对多的关系:
public class Book {
public String id;
public List<Author> authors;
}
注意:但请确保作者不应该像后面的Book实例一样拥有back属性。
public class Author
{
public Book book;
}
在某些客户端框架中,如knockout,它会创建带有observables的循环。