Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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/0/jpa/2.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 引用JDBC持久化的非JPA实体的JPA注释实体_Java_Jpa_Jdbc - Fatal编程技术网

Java 引用JDBC持久化的非JPA实体的JPA注释实体

Java 引用JDBC持久化的非JPA实体的JPA注释实体,java,jpa,jdbc,Java,Jpa,Jdbc,我有一个新项目,它将利用JPA,并可能使用Hibernate或spring数据作为提供者。然而,这个新项目中的一些持久化实体将通过普通JDBC引用由其他项目管理的持久化实体。这些旧项目目前无法更新以利用JPA。正确的处理方法是什么?我可以不直接引用非JPA实体吗?理论上,您可以在应用程序中直接管理它们,方法是为它们创建JPA实体,并根据需要(从应用程序中)使用JPA来持久化它们,而旧的JDBC应用程序可以以相同的方式管理对象,但没有JPA的好处 然而,有一点需要注意,如果任何缓存都到位,并且实体

我有一个新项目,它将利用JPA,并可能使用Hibernate或spring数据作为提供者。然而,这个新项目中的一些持久化实体将通过普通JDBC引用由其他项目管理的持久化实体。这些旧项目目前无法更新以利用JPA。正确的处理方法是什么?我可以不直接引用非JPA实体吗?

理论上,您可以在应用程序中直接管理它们,方法是为它们创建JPA实体,并根据需要(从应用程序中)使用JPA来持久化它们,而旧的JDBC应用程序可以以相同的方式管理对象,但没有JPA的好处

然而,有一点需要注意,如果任何缓存都到位,并且实体在应用程序容器之外被修改,那么最终将进入危险区域


我建议关闭本地缓存,因为每当JDBC应用程序写入数据库时,您都会得到过时的数据。

这也是我的想法,我只是试图避免为本质上相同的实体管理两个模型。不过,感谢您提供有关缓存的提示!没有办法不同时管理两者——因为它们的代码可能略有不同(JPA支持的数据结构与JDBC不同),单个JPA应用程序已经同时写入相同的表。如果另一个应用程序也写入同一个数据库,它不应该改变任何关于锁定的内容。最后,一切都归结为并发数据库事务。谢谢JB-我在考虑在同一个应用程序中的并发事务。以上已更正。