2
我能坚持一个对象到DB从Java这样:有没有办法在没有写入查询或ID的情况下在Hibernate中加载对象?
表人:
varchar name
varchar groupID
varchar emailAddress
key on (name, groupID)
而且在Java中
Person foo = new Person("dhackner", "3");
session.persist(foo);
两个论据是关键。在这种情况下,name和groupID是DB中的唯一键,因此足以清楚地标识表中的任何特定行(可以有多个“dhackner”条目,多个“group 3”条目,但只有一个“dhackner,group 3“条目)。
假设正确的设置,该代码将成功地导致
name | groupID | emailAddress
dhackner | 3 | ""
我希望能够做的是相反的,而无需编写一个查询或使用任何自动生成的ID:
表人:
name | groupID | emailAddress
dhackner | 3 | "something"
dhackner | 4 | "foobar"
other | 3 | "barfoo"
在Java:
Person foo = new Person("dhackner", "3");
foo.load(); // something like this
Assert.assertEquals(foo.getEmailAddress(), "something");
我相信你被允许在一定条件下自然键。你是这个意思吗?或者通常在一个独特的领域?你当然可以总是抽象掉查询 – extraneon 2010-09-02 19:29:21