更新(在MySQL数据库中)更改了主键的Java对象

时间:2013-08-12 21:42:23

标签: java mysql reflection

如果标题有误导性,我很抱歉。

我有表示数据库条目的对象,我使用反射和注释自动从/向数据库检索/保存这些对象。我现在想知道如何处理对象主键的更改。问题是目前不记得原来的“价值观”。

示例:

@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对象并存储其原始表单。

有任何意见吗?更好的想法?

0 个答案:

没有答案