простой - JPA @OneToMany генерирует SQL для несуществующей таблицы - PullRequest
2 голосов
/ 28 февраля 2012

У меня запущен простой проект JPA (с IBM RAD 7.5 в WebSphere 7).

У меня есть клиент, у которого много заказов.Похоже на это ...

@Entity
public class Customer /* in table CC_CUSTOMER */
  @Id
  BigDecimal customerId;
  @OneToMany(fetch=FetchType.EAGER)
  private List<Order> orderList;

...

@Entity
public class Order /* in table CC_ORDER */
  @Id
  BigDecimal orderId;
  Customer customer;

Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь найти клиента, я получаю сообщение об ошибке, потому что генерируется SQLJPA содержит выбор для несуществующей таблицы с именем: CC_CUSTOMER_CC_ORDER

Что я делаю не так?

Спасибо!

Роб

1 Ответ

3 голосов
/ 28 февраля 2012

У вас отсутствует аннотация @ManyToOne у клиента Customer; и mappedBy = "customer" в аннотации @OneToMany

Клиентский объект

@OneToMany(fetch=FetchType.EAGER, mappedBy="customer")
private List<Order> orderList;

Заказ сущности

@ManyToOne
Customer customer;

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

...