如果标题有误导性,我很抱歉。
我有表示数据库条目的对象,我使用反射和注释自动从/向数据库检索/保存这些对象。我现在想知道如何处理对象主键的更改。问题是目前不记得原来的“价值观”。
示例:
@DbClass(tableName="category")
public class Category {
@DbField(name="caregory_name", isPrimaryKey = true)
public String categoryName;
@DbField(name="a_value", isPrimaryKey = false)
public Double aValue;
}
然后像DatbaseOperations.sotreObject(Category.class, aCategoryInstance)
这样的函数尝试创建适当的预准备语句并根据注释存储(更新)对象。
但是如果我更改categoryName字段,我就无法创建正确的sql语句(UPDATE category SET WHERE categoryName = ...
< - 不记得原始值)
我想强调,我需要使用整个反射/注释方法的解决方案。
我正在考虑创建一个类似的界面:
public interface HasOriginal {
public Object original = null;
}
用它实现任何与数据库相关的类。然后,当创建数据库对象时,我会将其复制到此original
对象并存储其原始表单。
有任何意见吗?更好的想法?