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