这是一个后续问题,用于检索给定修订版本的审计实体名称,旧值和新值
我已经弄清楚了如何获得实体的两个修订版,但是很难找到两者之间的区别。envers中有什么可以帮助对不同修订版本的实体进行比较?还是任何好的图书馆?
如果可以修改属性(_mod)字段字段,我将非常酷。
因此,我想使生活更轻松的是创建一个注释,以标记我有兴趣比较的字段。没有,我最终不得不坚持命名对话,就像仅使用以’get’开头的方法一样。我发现这种方法有很多极端的情况。
注释。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface AuditCompare {
public String name() default "";
public CompareType compareBy() default CompareType.string;
enum CompareType {
string, count
}
}
像这样被使用
@Entity
@Audited
public class Guideline {
.....
@AuditCompare
private String name;
@AuditCompare
private String owner;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true, mappedBy="guideline")
private Set<GuidelineCheckListItem> checkListItems = new HashSet<GuidelineCheckListItem>();
.........
}
由于envers将Set更改和Set的对象都审核为两个不同的事件,因此我不想比较是否更改了set。然后做比较,我有看起来像的方法
private void findMatchingValues(Object oldInstance, Object newInstance, ActivityEntry entry) {
try {
Class oldClass = oldInstance.getClass();
for (Field someField : oldClass.getDeclaredFields()) {
if (someField.isAnnotationPresent(AuditCompare.class)) {
String name = someField.getAnnotation(AuditCompare.class).name();
name = name.equals("") ? someField.getName() : name;
Method method = oldClass.getDeclaredMethod(getGetterName(name));
if(someField.getAnnotation(AuditCompare.class).compareBy().equals(AuditCompare.CompareType.count)) {
int oldSize = getCollectionCount(oldInstance, method);
int newSize = getCollectionCount(newInstance, method);
if (oldSize != newSize) entry.addChangeEntry(name, oldSize, newSize);
} else {
Object oldValue = getObjectValue(oldInstance, method);
Object newValue = getObjectValue(newInstance, method);
if (!oldValue.equals(newValue)) entry.addChangeEntry(name, oldValue, newValue);
}
}
}
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
我在树状图中有数据,我使用ObservableList来渲染地图数据。我需要直接在TableView上编辑字符串值。问题是,如何更改TreeMap上的真实数据,即如何从数据列表中获取旧的和新的str值以将其放入map键中。 getOldValue方法不起作用。我用这个方法得到的只是新值。
我有Python 3.6。5和Python 3.7。4.已安装。 给我3.6,而 给我3.7。PyCharm中的运行代码表明它仍在使用3.6。如何更新它以开始使用3.7和/或删除3.6? 我环顾了很多其他论坛,但到目前为止,似乎没有什么与这个具体问题相关。
我想在eclipse中为两个不同的项目使用两个版本的ant插件。这两个版本都可以在我的Eclipse的plugins文件夹中找到。但是,当我试图将ant插件添加到清单中的插件依赖项中时,我只能看到最新版本的ant插件。MF文件。请帮我做这个。
我有两个具有多列的数据帧。 我想比较df1['id']和df2['id'],并返回一个新的df,其中列['correct_id']具有匹配值。例子: df1: df2 这是我的代码: 我得到的结果是: 预期输出: 我该怎么解决这个问题拜托
问题内容: 我试图从所有内容都在一个列中的地址中提取状态,这是一个示例: 我一直在尝试找出如何使用和一起做,但是我似乎无法掌握。这是我到目前为止的内容: 我以为它会从第二个逗号开始,到第三个逗号结束,并且让我的所有内容介于两者之间,但事实并非如此。 任何帮助表示赞赏。 问题答案: 一般来说, 例子: