Java 持久化实体中可嵌入的列表
我想在实体中保留一个可嵌入对象列表。但不为列表中的对象创建新表 我希望以将坐标列表序列化为字符串并保存在实体_a的名为“坐标”的列中的方式持久化实体 我知道我不应该这样做,因为这是一个糟糕的设计。但在这种情况下,这是必要的 我的尝试是: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
@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直接将集合序列化到字段。它需要是可嵌入的,因为我在其他地方使用它。