【发布时间】:2014-11-04 07:33:18
【问题描述】:
public class App
{
public static void main( String[] args )
{
//test insert
tx = session.beginTransaction();
System.out.println("Maven + Hibernate + MySQL");
// Session session = HibernateUtil.getSessionFactory().openSession();
//session.beginTransaction();
Stock stock = new Stock();
stock.setStockCode("7000");
stock.setStockName("z");
session.saveOrUpdate(stock);
}
Stock.java
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.persistence.UniqueConstraint;
import com.warp.intercept.*;
/**
* Stock generated by hbm2java
*/
@Entity
@Table(name = "stock", catalog = "mkyong", uniqueConstraints = {
@UniqueConstraint(columnNames = "STOCK_NAME"),
@UniqueConstraint(columnNames = "STOCK_CODE") })
public class Stock implements java.io.Serializable, IAuditLog {
private Integer stockId;
private String stockCode;
private String stockName;
public Stock() {
}
public Stock(String stockCode, String stockName) {
this.stockCode = stockCode;
this.stockName = stockName;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "STOCK_ID", unique = true, nullable = false)
public Integer getStockId() {
return this.stockId;
}
public void setStockId(Integer stockId) {
this.stockId = stockId;
}
@Column(name = "STOCK_CODE", unique = true, nullable = false, length = 10)
public String getStockCode() {
return this.stockCode;
}
public void setStockCode(String stockCode) {
this.stockCode = stockCode;
}
@Column(name = "STOCK_NAME", unique = true, nullable = false, length = 20)
public String getStockName() {
return this.stockName;
}
public void setStockName(String stockName) {
this.stockName = stockName;
}
我有一个 Java Web 应用程序,我想在数据库中为所有数据库更改创建审计日志,例如(列更改、列中的值更改、用户 ID、时间戳和其他一些字段)。我想创建一个通用服务,它具有为此类操作公开的方法,并且我可以从应用程序中的任何其他组件访问它们。据我所知,这可以通过休眠环境或 Spring AOP 来完成。您能否建议并提供一个示例,我可以利用它来进一步扩展它。
附: : 我不想使用基于触发器的日志记录来审计数据库更改
假设这是我的实体股票;我正在通过休眠对股票执行一些简单的保存操作。假设,我有一个主要方法,我执行下面提到的操作
【问题讨论】:
-
不清楚的问题没有任何示例代码作为讨论的基础。请更新问题并更具体。
-
添加了代码。具体一点;我想开发一个通用的服务/组件,它可以在不同的项目中使用,以审计日志应用程序中表上发生的数据库更改。例如:我想在这些表上放置一些拦截器或类似的东西,并且每当对该表执行操作时;更改存储在表中。我已经通过 Hibernate 拦截器实现了这一点,但我想通过 Spring AOP 来实现。