2011-09-29 218 views
1

我知道有很多关于文档的信息,但我对这个论点完全陌生,我想对此有一些简单的建议。 我正在使用spring hibernate和jpa。我将在同一台服务器上安装两个不同的应用程序。它们都与同一个数据库进行通信,但只读一个,另一个读写。 这是最好的方式来负担得起吗?看着aorund我明白应该有必要像EHCache这样的二级缓存,但有一些愚蠢的东西,我不明白。例如,我应该在两个应用程序中创建完全相同的实体吗?如何将只读应用程序将其实体与其他应用程序创建的实体相关联?从两个不同的应用程序访问相同的数据库(读/写和只读)

回答

5

嗯,这里是你的问题发表一些看法

  1. 从理论上说,你是不是在所有强制具有映射到数据库表中的相同的Java类。您可以制作不同的标注并对它们进行标注,以便两组都映射到相同的表格。这就是说,这不是一个好习惯。你应该做的是拥有一个数据访问模块,在这个模块中你有一套JPA实体bean映射到表,以及允许你对这些(至少是CRUD)进行基本操作的类,然后有单独的服务使用数据访问模块类实现特定业务逻辑的两个项目中的每个类中的类

  2. 由于您有2个应用程序访问同一个数据库,因此您将处理两个单独的JPA上下文,这将分别刷新和同步。因此,如果您不确定每次需要时都手动刷新修改,则可能会出现一些数据不一致情况。如果你在其上面使用二级缓存(比如EHCache),这可能会成为另一个问题。但是,在您当前的设置中,只有读取和写入的应用程序应该遵守这些限制,另一个(只读的限制)可以并且确实建议使用二级缓存来加速其操作。只要确保所说的缓存被刷新/过期,以便在第一个应用写入时就能得到所需的数据(例如,如果经常写入,缓存也应该经常过期;如果你每个月都写一次,可以在只读应用程序的二级缓存上配置较长的到期时间)

0

我只会创建两个用户,其中一个用户只有读取权限(如果您的数据库引擎支持)。

相关问题