如何通过Hibernate将java.lang.reflect.Method存储到数据库中

时间:2013-09-30 15:56:46

标签: java hibernate reflection

我有一个引用java.lang.reflect.Method的类,我需要存储该类和该引用。

有人知道怎么做吗?

在我看来,我不能直截了当地做,但我想我可以将java.lang.reflect.Method分解为类名,方法名,类名参数,并存储这些字符串。这样,我可以在加载时从它们重新生成Method对象。

有意义吗?在那种情况下,任何关于如何做的想法?

1 个答案:

答案 0 :(得分:0)

您无法在数据库中保存Method实例。它不可序列化。

您可以做的最好的事情是创建一对表示方法的名称和签名的字符串,以及定义它的类的完全限定名称。如果将它们存储在数据库中,则可以使用反射重建Method(和Class),前提是该类在类路径上可用。

  

关于如何做的任何想法?

应该相当直接地使用ClassMethod API。我建议你阅读相应的javadoc,并尝试自己编写代码。如果您遇到问题,请提出后续问题,包括给您提供问题的代码。


  

你知道我应该如何/在哪里指定去组合和重建策略?我希望Hibernate为我做这件事,以便我不会污染我的业务模型层。

在您的Java代码中。这不是Hibernate / JPA会自动为您做的事情。 (首先,关于类路径中存在的类的警告实际上意味着无法保证反向转换有效...)


实际上,您对Method个对象(以某种形式或其他形式)持久存在的“要求”表明您的应用程序设计已经方式过于复杂...... IMO。