OpenJPA рассматривает поле с сопоставлением oneToMany как BLOB-объект - PullRequest
4 голосов
/ 29 марта 2011

У меня серьезная проблема с реализацией JPA отношений OneToMany, и я ищу разумный обходной путь. Проблема в том, что JPA, похоже, запутался, читая аннотацию @OneToMany, и возвращает:

«Flea.dog» объявляет столбец, который не совместим с ожидаемым типом «blob».

Flea.dog - числовое поле. Проблема, кажется, известная ошибка: https://issues.apache.org/jira/browse/OPENJPA-1481

Проблема создается следующим образом: у меня есть две сущности: Собака и Блоха, У Собаки много блох, представленных dog_id в таблице Блох. Эти сущности сопоставлены с таблицами с разными именами. Собака сопоставлена ​​с Мадрой, а Блоха сопоставлена ​​с фейтиди.

Таблицы следующие:

CREATE TABLE madra (dogid BIGINT, name varchar(255), PRIMARY KEY (dogid));
CREATE TABLE feithidi (fleaid BIGINT, dogid BIGINT, PRIMARY KEY (fleaid));

Я использую H2 для примера, хотя у меня была та же проблема с Oracle.

Существуют следующие сущности:

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

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

}

и

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

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

}

Полное исключение, которое мне возвращается:

(org.apache.openjpa.persistence.ArgumentException: «Flea.dog» объявляет столбец, который не совместим с ожидаемым типом «blob».

Если у кого-то есть обходной путь или я вижу очевидную ошибку с моей стороны, я был бы признателен за отзыв.

1 Ответ

5 голосов
/ 27 июля 2012

Получено то же сообщение об ошибке, потому что я забыл поместить объект Dog в файл persistence.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...