Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 谷歌应用引擎JPA+;客观化_Java_Google App Engine_Jpa_Objectify - Fatal编程技术网

Java 谷歌应用引擎JPA+;客观化

Java 谷歌应用引擎JPA+;客观化,java,google-app-engine,jpa,objectify,Java,Google App Engine,Jpa,Objectify,我有一个Java+GAE+JPA项目,我想引入Objectify框架,我也有JPA,所以我的问题是:在我需要的情况下,是否可以将JPA(EntityManager、JPQL等)与Objectify结合起来?有人有过这样的经历吗 我的意思是我想拥有一个可以同时操作EntityManager和ObjectifyService的DAO是的,你可以,但是为什么?在从JPA过渡到Objectify的情况下,这是合理的,但我不会建议任何超出该范围的事情。简单的答案是肯定的,你可以同时拥有两者。JPA实体到对

我有一个Java+GAE+JPA项目,我想引入Objectify框架,我也有JPA,所以我的问题是:在我需要的情况下,是否可以将JPA(EntityManager、JPQL等)与Objectify结合起来?有人有过这样的经历吗


我的意思是我想拥有一个可以同时操作EntityManager和ObjectifyService的DAO

是的,你可以,但是为什么?在从JPA过渡到Objectify的情况下,这是合理的,但我不会建议任何超出该范围的事情。

简单的答案是肯定的,你可以同时拥有两者。JPA实体到对象化实体的映射是“正如您所期望的”-字段具有相同的名称,等等

如果您使用诸如嵌入式类和多态性之类的高级对象化特性,它会变得稍微复杂一些,但即使这些特性也可以映射到JPA中。Objectify文档描述了这些功能的本机存储格式


但是,在这样做时要小心。Objectify非常宽容不连贯的数据——在进行模式更改时,这是一个方便的特性。但是,例如,如果您忘记将字段添加到Objectify实体,然后使用Objectify加载/保存实体,您将有效地“剥离”被遗忘的字段。并行实体类必须小心维护。

我不想从JPA转换到Objectify,我只想使用两者,作为初始解决方案,我使用JPA,但这个API没有Objectify那样的功能,有时我需要使用Objectify提供的功能。我个人建议放弃JPA;IMO说,除了你的应用程序启动速度更快、占用内存更少之外,将两者结合起来还存在一定程度的复杂性,这是不需要的。