我有一个简单的表,我想将它们存储在另一个表中(也创建一个历史悠久的用户)。我们称之为用户。我创建了一个与用户(只有不同的id名称)完全相同的表,名为HISTORY_Users。
所以我创建了表,现在我意识到我有1个对象的2个表。那么如何将我的对象仅添加到hist表呢?
我不想同时添加它们。我只想在删除帐户时将用户添加到hist。
我正在使用Hibernate和xml映射
//when the user deletes the account I call this function and pass the User
private static void addToHist(User User) {
//how do I add only to HIST_Users table??
Database.addToDatabase(user);
}
//Save the object to the database
public static void addToDatabase(Object object) {
SessionFactory factory = HibernateUtil.GetSessionFactory();
Session session = factory.openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
session.save(object);
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
}
}
答案 0 :(得分:0)
也许更好的解决方案是使用Hibernate Envers:http://hibernate.org/orm/envers/
您可以配置何时将其放入历史记录:创建,更新或删除。
表是自动创建的,您需要添加一些注释,例如@Audited等。