-1
私に正しく教えてくださいgetOrders()を呼び出すと、完全なSetを返す必要があることを理解していますか?Hibernate @OneToMany空集合
受注テーブルのFK。
Ordersオブジェクトを取得するためにHQL(JPQL)を使用するだけですか?
私は空のセットになっています。 getterを呼び出すと、orderSet = bid.getOrders();がセットされます。デバッグでは何も表示されません。
@Entity
@Table(name = "bid")
public class Bid {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(mappedBy = "bid_id",cascade = CascadeType.ALL,fetch = FetchType.EAGER)
private Set<Order> orders = new HashSet<>();
@Column(name = "title")
private String title;
@Column(name = "description")
private String description;
public Set<Order> getOrders() {
return orders;
}
public void setOrders(Set<Order> orders) {
this.orders = orders;
}
@Entity
@Table(name = "orders")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "title")
private String title;
@ManyToOne(optional = true,fetch = FetchType.EAGER,cascade =
CascadeType.ALL)
@JoinColumn(name = "bid")
private Bid bid_id;
@Repository
@Transactional
public class BidDao {
@PersistenceContext
private EntityManager entityManager;
public void create(Bid bid){
entityManager.persist(bid);
}
}
はい、それは完全なセットを返す必要があります。あなたがDAOレベルでビットを取得する方法を示していますか? – xyz
mmm、daoでは作成のみを行いますが、コントローラでgetterコールを設定します。 orderSet = bid.rr(); –
'Entity'のCreate/Read/Update/Delete操作は' Controller'ではなく 'Repository'になければなりません。 –