可在Id字段

时间:2018-02-01 12:26:49

标签: spring jpa

我正在尝试定义一个@Embeddable类与另一个实体的@ManyToOne关系。 @OneToMany方有@Id字段,注明@Access(AccessType.Property)。这是一个示例代码来说明:

@Embeddable
class Embeddable {
    @ManyToOne
    private ClassA classA;
}

@Entity
class ClassA implements Serializable {
    @Id
    @GeneratedValue
    @Access(AccessType.Property)
    private Long id;

    public Long getId() { return id; }
}

@Entity
class ClassB {
    @ElementCollection
    private List<Embeddable> embeddables;
}

问题是类Embeddable的创建表定义似乎是错误的。 ClassA的列的类型为bytea,其名称为class_a,而不是bigintclass_a_id。此外,如果我尝试持久化一个数据集,则ClassA的相关实体将被序列化为hex ..每个其他@Entity按预期工作。这是我的错误还是错误?

修改 可嵌入表(当前状态):

| class_b_id | class_a     |
| type: int  | type: typea |
|:-----------|------------:|
| 123        | A3B4738D..  |

可嵌入(需要状态)表:

| class_b_id | class_a_id  |
| type: int  | type: int   |
|:-----------|------------:|
| 123        | 2           |

0 个答案:

没有答案