Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动保存模型的动态代理_Java_Hibernate_Proxy Classes_Cglib - Fatal编程技术网

Java 自动保存模型的动态代理

Java 自动保存模型的动态代理,java,hibernate,proxy-classes,cglib,Java,Hibernate,Proxy Classes,Cglib,我尝试在java中使用代理来跟踪对象并在调用set*方法时保存它们,从而实现一些自动魔术。我开始使用java的内置代理,一切正常,但据我所知,每个模型都需要一个接口,这是我试图避免的 这就是CGLIB的用武之地,它允许我在不使用接口的情况下创建模型的代理。但是,我现在如何检索原始对象,即我试图保存的对象 最佳的解决方案是类似于hibernate使用的EntityManager接口,您可以在其中保留原始对象,但它仍然被跟踪 接口只指定一个作为参数的方法。MethodInvocation有几个方法来

我尝试在java中使用代理来跟踪对象并在调用set*方法时保存它们,从而实现一些自动魔术。我开始使用java的内置代理,一切正常,但据我所知,每个模型都需要一个接口,这是我试图避免的

这就是CGLIB的用武之地,它允许我在不使用接口的情况下创建模型的代理。但是,我现在如何检索原始对象,即我试图保存的对象

最佳的解决方案是类似于hibernate使用的EntityManager接口,您可以在其中保留原始对象,但它仍然被跟踪

接口只指定一个作为参数的方法。MethodInvocation有几个方法来检索正在处理的对象:getStaticPart、getThis。你试过打电话给他们吗


作为一个无耻的插件,您实际上可以将Hibernate与Xstream一起使用。下面是关于Xstream persister的内容。但在本例中,Xstream用于将XML格式的字段保存到数据库中。

您的意思是,您试图使用标准Java序列化来持久化对象,但在序列化使用CGLIB插入的类时遇到问题?我使用Xstream将对象序列化为XML,但问题是我无法从MethodInterceptor类的intercept方法中访问模型对象。我希望这能让事情变得更清楚一些。我已经看完了你的博文,这看起来真的很酷。虽然不是我要找的东西,但我们正试图避免使用db。另一个音符看起来很不错,我还没有尝试过aopalliance的方法调用。我现在就试试,让你们知道它是怎么回事。:)