将数据库表映射到Hashtable

时间:2011-02-09 11:45:42

标签: java jpa ejb-3.0

我在Oracle db中有一个简单的表,其中包含列:“KEY”,“VALUE”。 我想在我的java代码中将此表映射为 无论如何在JPA直接这样做?或者我应该手动完成吗?

谢谢, 射线。

3 个答案:

答案 0 :(得分:2)

如果键和值是基本类型或嵌入类型,那么您想使用

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

如果他们是真实的,那么您想查看以下文档,以便您可以选择最合适的文档。

@OneToMany
@ManyToMany
@MapKey
@MapKeyClass

答案 1 :(得分:0)

您可以使用以下代码:

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;
}

请记住,如果你的桌子太大,你最终可能会遇到内存问题。

答案 2 :(得分:0)

Commons Configuration有一个DatabaseConfiguration类,用于将键值表映射到类似Java的属性。