【发布时间】:2014-03-21 19:01:56
【问题描述】:
我有一个新项目将使用 JPA,并可能使用 Hibernate 或 spring-data 作为提供者。但是,这个新项目中的一些持久化实体将通过 vanilla JDBC 引用由其他项目管理的持久化实体。目前无法更新这些较旧的项目以使用 JPA。处理这个问题的正确方法是什么?我可以不直接引用非 JPA 实体吗?
【问题讨论】:
我有一个新项目将使用 JPA,并可能使用 Hibernate 或 spring-data 作为提供者。但是,这个新项目中的一些持久化实体将通过 vanilla JDBC 引用由其他项目管理的持久化实体。目前无法更新这些较旧的项目以使用 JPA。处理这个问题的正确方法是什么?我可以不直接引用非 JPA 实体吗?
【问题讨论】:
理论上,您可以通过为它们创建 JPA 实体并利用 JPA 根据需要(从您的应用程序)持久化它们来直接在应用程序中管理它们,而旧的 JDBC 应用程序以相同的方式愉快地管理对象,但没有好处JPA 的。
但是 - 需要注意的是,如果有任何缓存并且实体在您的应用程序容器之外被修改 - 您最终将处于危险的境地。
我建议关闭本地缓存 - 因为每当 JDBC 应用程序写入数据库时,您最终都会得到陈旧的数据。
【讨论】: