Tag: 审计

审核数据库中多个表的历史记录

我的数据库中有3-4个表,我想跟踪它们的变化。 我主要关注更新。 每当发生更新时,我想在审计表中存储先前的条目(值或完整行)。 我想到的基本专栏如下: AuditId, TableName, PK1, PK2, PK3, PKVal1, PKVal2, PKVal3, UpdateType, PrevEntryJSON JSON将采用以下格式: Key:Value ,我更喜欢随着列的不断变化,我希望保留所有值,即使它们没有变化。 其他选项是删除带有100个列的JSON,这些列的名称与不同的列相同(所有表的累计)。 我想听听别人对此的看法。 我怎么能改进它以及我可以面对哪些问题? 通过触发器可能不是更好的方式,但我对此持开放态度。 谢谢,

如何审核Java EE项目?

我将审核基于JSF / CDI / EJB3.0 / JPA的Java EE Web项目的代码体系结构质量和可维护性(最终确保我们已经付出了代价)(仅举几个技术的名称)参与)。 这可能不是一个正确的问题,但你如何处理这类任务呢? 基本上,我将从粗粒度到细粒度,即从整个架构到java代码。 完全处理每一层是否更好? 我应该花更多时间在低层吗? 你评估整个事情(构建,部署,测试)吗?

如何让Java反映出超类中的字段? 不仅仅是实际的课程

我最近改变了我的模式所以我的类inheritance自超类,问题是我的比较方法生成审计日志,使用Javareflection,现在只循环子类的字段,而不是超类,是有办法获得所有FIELDS? 或者我需要把它投入超级……? 下面是我的方法: public static String GenerateChangeLogForEntity(T old, T updated) { String text = “”; try { Field[] fields = old.getClass().getDeclaredFields(); if(fields != null) { BaseController.getLogger().info(“Z1 num fields:”+fields.length); for (Field field : fields) { if(field.isAnnotationPresent(Column.class)) { String fieldName = field.getName(); BaseController.getLogger().info(field.getName()); if(field.isAnnotationPresent(Variation.class)) { Variation v = field.getAnnotation(Variation.class); fieldName = v.friendlyName(); } field.setAccessible(true); if(field.get(old) != null […]