它的问题与此相同:仅在常规 Hibernate 而不是 NHibernate 中使用 NHibernate 填充现有实体。这个问题也没有完全回答海事组织。
总而言之,是否有可能(在休眠状态下)通过先前附加的实体填充/填充新实体?就像是:
daoService.getEntityManager().find(Student.class, 123L);
Student student = new Student(123) // Creating a new student
daoService.fill(student);
结果应该是学生实例将具有与实体管理器找到的值完全相同的值。
我不能使用合并,因为它返回一个新实例(而不是填充给定实例),如果 ID 属于已附加的实体,我不能使用 load()。我希望代码对每个实体都是通用的,因此仅手动设置值是不切实际的。我宁愿在这种情况下不使用反射,因为所有潜在的陷阱(延迟初始化、继承、没有相应 set 方法的 get 方法,反之亦然,等等)
我正在开发一个同时使用 JPA 实体和非实体(使用 JDBC)的遗留系统,这可以解决我的一些主要问题。
在此先感谢您的帮助!