我的目标之一是创建一个引擎,该引擎将使用反射动态地从 JPA 对象设置 pojo 对象中的值。匹配标准之一是字段名称应该匹配。
我成功地为两个 pojo 对象实现了这一点。但是当我尝试使用 JPA 对象作为对象参数之一时,它不起作用。根据我的研究,我发现方法 Class.getDeclaredFields()
并没有给出字段的名称,而是给出 JPA 对象的成员变量的 getter/setter 方法名称。
任何人都可以给我指导或指导,告诉我我应该在哪里/做什么来完成这项任务吗?
最佳答案
JPA 提供商经常使用 dynamic proxy classes的具体 JPA 类,因此您无法保证代理中的字段名称。关于代理的唯一保证是方法是相同的。使用调试器检查您尝试使用的 JPA 类实例的运行时类,您就会发现问题。
您能做的最好的事情就是使用反射来调用 JPA 返回的对象上的方法。
<小时/>除此之外,我真的不明白为什么你需要 POJO 化实体类,因为实体主要是带注释的... POJO。
关于java - 如何使用反射从 JPA 对象检索私有(private)变量属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11804598/