JPA如何确定哪个类正在调用方法?

时间:2012-07-20 16:20:04

标签: java jpa playframework

我正在研究一个将被许多不同的分类子类化的类。有一些静态方法需要知道调用源自的子类的名称。现在我知道我可以在静态方法中做这样的事情

foo(Class clazz, String things, String... stuff){}

但我更希望让用户更轻松,而不必拨打电话,例如

Pass.retract(Pass.class, xxxx, yyyy);

相反,我更喜欢它看起来像

Pass.retract(xxxx, yyyy);

现在,我知道JPA使用它的find()函数来做到这一点。我已多次遍历搜索功能,但似乎实体变量是神奇地填充的。它是如何做到的?如果有任何一个大师有一个想法,我真的很感激。

1 个答案:

答案 0 :(得分:2)

播放1.x做了很多魔术,包括使用Javassist的查找方法。它是一个运行时字节码增强器,可以通过做一些“魔术”来隐藏用户的API复杂性。

也就是说,Play2选择放弃这种方法,因为核心开发人员认为当人们试图维护核心代码库时,魔术太难理解了。