Derived DeleteByクエリは機能しません。しかしfindBy
と@Query
で削除してください。Spring deleteByは@Queryでのみ動作します
私は@Modifying
と@Transactional
を追加しようとしました、私はLong
、List<OrderItem>
、void
に型を返すに変更しました。
これは私のCrudRepositoryインターフェース、注文とOrderItemのクラスです:
public interface OrderItemRepository extends CrudRepository<OrderItem, Long> {
List<OrderItem> findByOrderAndItem_ItemGroup(Order order, ItemGroup itemGroup);
@Transactional
Long deleteByOrder(Order order);
@Modifying
@Query("delete from OrderItem o where o.order = ?1")
Integer deleteByOrderQuery(Order order);
}
@Entity
@Table(name = "t_order_items")
public class OrderItem {
@GeneratedValue
@Id
private Integer id;
@Column(name="itemcount")
private Integer itemCount;
@OneToOne()
@JoinColumn(name="item_id")
private Item item;
@ManyToOne
@JoinColumn(name = "oder_id")
private Order order;
}
@Entity
@Table(name = "t_orders")
public class Order implements Serializable {
@GeneratedValue
@Id
private Integer id;
@Column(name = "orderdate")
private LocalDate orderDate;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE, mappedBy = "order")
private List<OrderItem> orderItems;
}
私はドキュメントhttp://docs.spring.io/spring-data/jpa/docs/current/reference/html/を読みましたが、deleteByについて何も特別なことはありません。
可能性のある重複した[春データ:サポートされている "により削除"?](http://stackoverflow.com/questions/23723025/spring-data-delete-by-is-サポートされています) – xenteros
私はこれを読んで、私は文書を読んだことに言及しました。私はそれが動作する必要があることを知っているが、私はなぜそれが動作していないのか分からない。 –
あなたのケースで "OrderItem"と "Order"を指定してください。 –