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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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,我正在学习Hibernate,我被注释所困扰。我有一个POJO项目: @Entity public class Item implements Serializable { @Id @GeneratedValue @Column protected Integer id; @Column protected State state; @ElementCollection protected Map<Locale, Ite

我正在学习Hibernate,我被注释所困扰。我有一个POJO项目:

@Entity
public class Item implements Serializable {

    @Id
    @GeneratedValue
    @Column
    protected Integer id;

    @Column
    protected State state;

    @ElementCollection
    protected Map<Locale, ItemBody> localization = new EnumMap<Locale, T>(Locale.class);

    ...

}
项目主体:

public class ItemBody implements Serializable {

    @Column(length = 256)
    protected String name;

    @Column(columnDefinition = "text")
    protected String description;

    @Column(columnDefinition = "text")
    protected String excerpt;

    ...
}
我使用它作为一个键来附加项目文本的翻译

理想情况下,Hibernate将生成两个类:

 Item (id, state)
 ItemBody (item_id, localization_KEY, name, description, excerpt)
其中,在item_id和localization_KEY表单中,主键一起出现

Hibernate会生成:

 Item (id, state)
 ItemBody (item_id, localization, localization_KEY)
其中本地化类型为Bytea,是ItemBody中所有行的序列化,而不是列出所有行。我将感谢任何关于我做错了什么的建议


谢谢

必须使用
@embeddeble
注释ItemBody。否则,Hibernate将其视为可序列化对象。

当我用Embeddeble注释ItemBody类时,我得到的是ArrayIndexOutOfBoundException()。我可以确认,这是由Item的本地化变量引起的-未引发异常。请尝试将
@CollectionTable(name=“ItemBody0”,joinColumns=@JoinColumn(name=“Item\u id”)))@Column(name=“locale”)
添加到
本地化
字段。尝试调试引起异常的类,以查看它期望的结果。我没有别的想法。
 Item (id, state)
 ItemBody (item_id, localization, localization_KEY)