我将JPA应用程序添加到许多现有应用程序的复杂系统中(用MS Access,Delphi,Perl,C#,PHP等编写)。底层MS-SQL数据库使用数据库触发器在历史数据库表中写入任何已更改数据库条目的副本,并添加SYSTEM_USER
和GETDATE()
。
由于我的新JPA应用程序使用连接池 - 数据库表的所有更改将始终由我们的技术用户(用户:“Java”)进行,并且JPA应用程序的所有历史数据库表条目将始终具有“Java”作为SYSTEM_USER。
如何让历史表中的条目自动创建 - 而不删除现有的触发器?
我想到了:
答案 0 :(得分:0)
1 - 如果您使用的是EclipseLink,则可能会使用其历史记录支持。 请参阅http://wiki.eclipse.org/EclipseLink/Examples/JPA/History
2 - 在EclipseLink中,您可以为createEntityManager()提供用户/密码属性以使用非池化连接。 请参阅http://wiki.eclipse.org/EclipseLink/Examples/JPA/Auditing#Provide_each_application_user_with_a_database_user_id
4 - 您可以使用JPA或EclipseLink事件。