小编Lin*_*ian的帖子

OpenJPA将oneToMany Mapping作为Blob处理

我对JPA实施OneToMany关系存在严重问题,我正在寻找合理的解决方法.问题是JPA看起来很困惑,阅读@OneToMany注释并返回:

"Flea.dog"声明一个与预期类型"blob"不兼容的列.

Flea.dog是一个数字字段.该问题似乎是一个已知的错误:https: //issues.apache.org/jira/browse/OPENJPA-1481

这个问题创建如下:我有两个实体Dog和Flea,一只狗有很多跳蚤由跳蚤表中的dog_id代表.这些实体映射到具有不同名称的表Dog映射到Madra,Flea映射到feithidi.

表格如下:

CREATE TABLE madra (dogid BIGINT, name varchar(255), PRIMARY KEY (dogid));
CREATE TABLE feithidi (fleaid BIGINT, dogid BIGINT, PRIMARY KEY (fleaid));
Run Code Online (Sandbox Code Playgroud)

我使用H2作为示例,尽管我在Oracle上遇到了同样的问题.

实体如下:

@Entity(name="feithidi")
Flea{
  @Id
  long fleaid;

  @ManyToOne
  @JoinColumn(name="dogid", insertable=false, updatable=false, nullable=true)
  private Dog dog;

}
Run Code Online (Sandbox Code Playgroud)

@Entity(name="madra")
Dog{
  @Id
  long dogid;
  String name;

  @OneToMany(mappedBy="dog")
  private Set<Flea> fleas;

}
Run Code Online (Sandbox Code Playgroud)

我返回的完整例外是:

(org.apache.openjpa.persistence.ArgumentException:"Flea.dog"声明一个与预期类型"blob"不兼容的列.

如果有人有工作或者我可以看到明显的错误,我会感激一些反馈.

java database annotations jpa

5
推荐指数
1
解决办法
1884
查看次数

标签 统计

annotations ×1

database ×1

java ×1

jpa ×1