我的目标之一是创建一个引擎,该引擎将使用反射从JPA对象动态设置pojo对象中的值。匹配条件之一是字段名称应匹配。
我成功地为两个pojo对象实现了这一点。但是,当我尝试将JPA对象用作对象参数之一时,它不起作用。根据我的研究,我发现方法Class.getDeclaredFields()
并没有为我提供字段名称,而是给我JPA对象的成员变量的getter / setter方法名称。
谁能给我一个指导或指导,说明我希望在哪里/完成什么工作?
最佳答案
JPA提供程序通常会使用您的具体JPA类的dynamic proxy classes,因此您不能保证代理中的字段名称。关于代理的唯一保证是方法相同。使用调试器检查您尝试使用的JPA类实例的运行时类,您将看到问题。
最好的办法是使用反射调用JPA返回的对象上的方法。
除了所有这些,我真的不明白为什么仍然需要POJO来修饰实体类,因为实体主要是带注释的... POJO。