Обратите внимание, что я на самом деле ничего не делаю с базой данных, поэтому инструменты ORM, вероятно, не то, что я ищу.
Я хочу иметь несколько контейнеров, каждый из которых содержит несколько объектов, причем все объекты в одном контейнере принадлежат к одному и тому же классу. Контейнер должен показывать некоторые характеристики таблицы базы данных, а именно:
- разрешить использование одного из полей объекта в качестве уникального ключа, т.е. е. другие объекты, имеющие такое же значение в этом поле, не добавляются в контейнер.
- после принятия нового объекта контейнер должен выдать числовой идентификатор, который возвращается вызывающей стороне метода вставки.
Вместо того, чтобы выдавать ошибку, когда запрашивается «повторяющаяся запись», контейнер должен просто пропустить вставку и вернуть ключ уже существующего объекта.
Теперь я бы написал общий контейнерный класс, который принимает объекты, которые реализуют интерфейс, чтобы получить значение ключевого поля, и использовать HashMap с этими значениями в качестве фактического класса хранения. Есть ли лучший подход с использованием существующих встроенных классов? Я просматривал HashSet и тому подобное, но они не подходили.