Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java处理层次结构_Java_Persistence_Hierarchy - Fatal编程技术网

Java处理层次结构

Java处理层次结构,java,persistence,hierarchy,Java,Persistence,Hierarchy,您好: 我有一个应用程序,其中线程层次结构(持久化实体)建模如下(请注意,这可能是一个深度嵌套的层次结构): 我有一个DTO,它的结构如下 ThreadDTO { private key; private rootKey; private parentKey; ArrayList<ThreadDTO> childThreads; ... getters ... ... setters ... } ThreadDTO { 私钥; 私钥; 私钥; A

您好: 我有一个应用程序,其中线程层次结构(持久化实体)建模如下(请注意,这可能是一个深度嵌套的层次结构):

我有一个DTO,它的结构如下

ThreadDTO
{
    private key;
    private rootKey;
    private parentKey;

    ArrayList<ThreadDTO> childThreads;

... getters ...
... setters ...
}
ThreadDTO
{
私钥;
私钥;
私钥;
ArrayList子线程;
…获得者。。。
…二传手。。。
}
我想将实体实例转换为DTO。是否有任何标准算法/最佳实践可用于此转换?
如果您有任何反馈,我们将不胜感激。

DTO非常烦人,您可以使用它们做的最好的事情是创建一个方法,该方法接受参数中的
线程并复制属性,另一个方法将返回带有属性副本的
线程


Adam Bien的另一个解决方案是,安全性更低,但代码中的复制/粘贴也更少。

我的问题更多地涉及如何创建嵌套层次结构(即ArrayList的填充),以便顶级ThreadDTO实例包含所有子线程DTO(自引用层次结构)…@newbie,同样,由于您必须手动将
Thread的所有内容复制到
ThreadDTO`中,因此您只需浏览列表并获取每个
线程的
ThreadDTO
。注意循环引用。感谢您的回复。我在寻找一种性能优化的方法来填充ArrayList子线程
ThreadDTO
{
    private key;
    private rootKey;
    private parentKey;

    ArrayList<ThreadDTO> childThreads;

... getters ...
... setters ...
}