Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Hibernate将表映射到映射?_Java_Hibernate - Fatal编程技术网

Java 如何使用Hibernate将表映射到映射?

Java 如何使用Hibernate将表映射到映射?,java,hibernate,Java,Hibernate,我的数据库中有一些表表示JavaMaps。它们有两列(键和值): 现在假设我有这个类: public class MyClass { private Map<String, String> params; public Map<String, String> getParams() { return params; } public void setParams(Map<String, String> pa

我的数据库中有一些表表示Java
Map
s。它们有两列(键和值):

现在假设我有这个类:

public class MyClass {

    private Map<String, String> params;

    public Map<String, String> getParams() {
        return params;
    }

    public void setParams(Map<String, String> params) {
        this.params = params;
    }

}

我找到了解决办法。它只能使用JPA注释来完成。代码如下:

@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "module_parameter")
@MapKeyColumn(name = "key")
@Column(name = "value")
private Map<String, String> params = new HashMap<>();
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name=“模块\参数”)
@MapKeyColumn(name=“key”)
@列(name=“value”)
private Map params=new HashMap();

从包含键和值的表中提取时,您将获得一个实体列表。在这种情况下,我认为不可能通过注释生成地图。基本上,您将有一个键值对列表,但在单独的对象中。所以您可以使用它。@javadev hibernate查询返回
List
yes列表。我说的是,键值将存在于对象的不同变量中。但是他们会在那里。
public class Params extends HashMap<String, String> {

}

public class MyClass {

    private Params params;

    public Params getParams() {
        return params;
    }

    public void setParams(Params params) {
        this.params = params;
    }

}
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "module_parameter")
@MapKeyColumn(name = "key")
@Column(name = "value")
private Map<String, String> params = new HashMap<>();