Исключение ненулевого свойства с однофакторным отображением JPA - PullRequest
2 голосов
/ 20 марта 2012

Я пытаюсь обойти JPA, но не могу заставить его работать так, как я их понимаю.

Это однонаправленное двунаправленное отображение между Order и классом OrderInvoice, которое является обязательной ассоциацией

Мои сущности помечены как

@Entity
@Table(name = "Orders")
public class Order {
    @Id
    @GeneratedValue
    @Column(name = "ORDER_ID")
    private int orderId;

    @OneToOne(optional=false,cascade=CascadeType.ALL, mappedBy="order", targetEntity=OrderInvoice.class)
    private OrderInvoice invoice;
}

@Entity
@Table(name = "ORDER_INVOICE")
public class OrderInvoice {
    @Id
    @GeneratedValue
    @Column(name = "INVOICE_ID", nullable = false)
    private int invoiceId;

    @OneToOne(optional = false)
    @JoinColumn(name="ORDER_ID")
    private Order order;
}

Мой тестовый класс такой:

@Test
public void createOrder() {
    Order order = createOrderImpl();
    assertNotNull(order);
}

private Order createOrderImpl() {
    OrderInvoice orderInvoice = new OrderInvoice(new Date(), 100.0, null,
            null, new Date());
    Order order = new Order(100.0, "JOHN Doe's Order", new Date(), new Date(),orderInvoice);
    orderDao.create(order);
    return order;
}

Но я сталкиваюсь с проблемой ниже, когда я запускаю свой тест

javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: order.OrderInvoice.order
    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:614)

Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: order.OrderInvoice.order
    at org.hibernate.engine.Nullability.checkNullability(Nullability.java:95)

1 Ответ

1 голос
/ 20 марта 2012

попробуйте

orderInvoice.setOrder(order);
orderDao.create(order);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...