Сопоставить таблицу базы данных с Hashtable - PullRequest
1 голос
/ 09 февраля 2011

У меня есть простая таблица в Oracle db со столбцами: "KEY", "VALUE".Я хотел бы отобразить эту таблицу в своем Java-коде, как в любом случае делать это прямо в JPA?или я должен сделать это вручную?

Спасибо, Рэй.

Ответы [ 3 ]

2 голосов
/ 09 февраля 2011

Если ключ и значение являются базовыми или встроенными типами, то вы хотите использовать

@ElementCollection
@CollectionTable(name = "table")
@MapKeyColumn(name = "KEY")
@Column(name = "VALUE")
protected Map<A,B> map;

Если они энтузиасты, то вам нужно взглянуть на документы по следующим вопросам, чтобы вы могли выбрать наиболее подходящий.

@OneToMany
@ManyToMany
@MapKey
@MapKeyClass
0 голосов
/ 09 февраля 2011

Конфигурация Commons имеет DatabaseConfiguration класс для отображения таблиц значений ключей в свойства Java, подобные классу.

0 голосов
/ 09 февраля 2011

Вы можете использовать этот кусок кода:

public Map<String, String> getAll() {
    Map<String, String> ret = new HashMap<String, String>();
    Query query = em.createQuery("select kvp from KeyValuePair kvp");
    for (KeyValuePair kvp : query.getResultList())
    {
       ret.put(kvp.getKey(), kvp.getValue());
    }
    return ret;
}

Имейте в виду, что если ваша таблица слишком большая, у вас могут возникнуть проблемы с памятью.

...