Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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 持久化实体中可嵌入的列表_Java_Jpa_Eclipselink_Glassfish 4_Jpa 2.1 - Fatal编程技术网

Java 持久化实体中可嵌入的列表

Java 持久化实体中可嵌入的列表,java,jpa,eclipselink,glassfish-4,jpa-2.1,Java,Jpa,Eclipselink,Glassfish 4,Jpa 2.1,我想在实体中保留一个可嵌入对象列表。但不为列表中的对象创建新表 我希望以将坐标列表序列化为字符串并保存在实体_a的名为“坐标”的列中的方式持久化实体 我知道我不应该这样做,因为这是一个糟糕的设计。但在这种情况下,这是必要的 我的尝试是: @Entity class Entity_A implements Serializable { //... private List<Coordinate> coordinates; } @Embeddable class C

我想在实体中保留一个可嵌入对象列表。但不为列表中的对象创建新表

我希望以将坐标列表序列化为字符串并保存在实体_a的名为“坐标”的列中的方式持久化实体

我知道我不应该这样做,因为这是一个糟糕的设计。但在这种情况下,这是必要的

我的尝试是:

@Entity
class Entity_A implements Serializable {
    //... 

    private List<Coordinate> coordinates;
}

@Embeddable
class Coordinate implements Serializable {
    private Float lat;
    private Float lng;
    private Float alt;
}
@实体
类实体_A实现可序列化{
//... 
私人名单协调;
}
@可嵌入
类坐标实现可序列化{
私人浮动lat;
私人浮式液化天然气;
私人浮动alt;
}
它不起作用。我没有得到任何错误

你知道我怎么做吗

编辑:


坐标需要可嵌入,因为我在其他地方使用它。

对于JPA 2.1,可以:

用@ElementCollection注释坐标字段

@ElementCollection    
private List<Coordinate> coordinates;
@ElementCollection
私人名单协调;

有关JPA 2.1的更多信息,请参见:

用@ElementCollection注释坐标字段

@ElementCollection    
private List<Coordinate> coordinates;
@ElementCollection
私人名单协调;

有关详细信息,请参见

除非在其他地方使用坐标,否则不要使坐标可嵌入,并使用@Basic注释列表,并使用可序列化的集合类型而不是列表类型。这将导致JPA将集合直接序列化到字段。它需要是可嵌入的,因为我在其他地方使用它。除非您在其他地方使用它,否则不要使坐标可嵌入,并使用@Basic注释列表,并使用可序列化的集合类型而不是列表类型。这将导致JPA直接将集合序列化到字段。它需要是可嵌入的,因为我在其他地方使用它。