Я могу сохранить объект в БД из Java следующим образом:
Таблица Person:
varchar name
varchar groupID
varchar emailAddress
key on (name, groupID)
И в Java
Person foo = new Person("dhackner", "3");
session.persist(foo);
Два аргумента делаютдо ключа.В этом случае name и groupID являются уникальным ключом в БД и, таким образом, достаточны для четкой идентификации любой конкретной строки в таблице (может иметь несколько записей «dhackner», несколько записей «group 3», но только одну «dhackner, group»).3 "запись).
Если при правильной настройке этот код будет успешно завершен, то
name | groupID | emailAddress
dhackner | 3 | ""
Я хотел бы иметь возможность сделать обратное без написания запроса или использования каких-либо автоматически сгенерированныхИдентификаторы:
Персона таблицы:
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");