一尘不染

Hibernate将对象值复制到具有新生成的ID的新对象中

hibernate

我正在使用一个带有一些嵌套表的单列pk的关系数据库。我需要在项目中添加简单的存档。归档仅在应用程序达到特定状态时发生,因此我希望做的就是将现有的hibernate对象复制到新实例中,在使用新ID保存新实例的同时,保持原有对象不变。我似乎无法弄清楚如何在无需手动设置每个新实例字段的情况下将现有对象复制到新实例中。有人知道这样做的简单方法吗?


阅读 336

收藏
2020-06-20

共1个答案

一尘不染

我也在与Hibernate合作,并且得到了与您相同的要求。我遵循的是实施Cloneable。下面是如何执行此操作的代码示例。

class Person implements Cloneable {

        private String firstName;
        private String lastName;

        public Object clone() {

            Person obj = new Person();
            obj.setFirstName(this.firstName);
            obj.setLastName(this.lastName);

            return obj;
        }

        public String getFirstName() {
            return firstName;
        }

        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }

        public String getLastName() {
            return lastName;
        }

        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
    }

或者,您可以使用基于反射的解决方案,但我不建议您这样做。检查此网站以获取更多详细信息。

2020-06-20