2017-06-16 2 views
-1

Erzähl mir richtig Ich verstehe, dass, wenn Sie getOrders() aufrufen, müssen Sie vollständig zurückgeben?Hibernate @OneToMany leeren Satz

FK in Bestellung Tabelle.

Oder Sie müssen nur HQL (JPQL) verwenden, um Orders-Objekt zu erhalten?

Ich werde leer gesetzt. Wenn ich getter anrufe Set OrderSet = bid.getOrders(); Im Debug zeige ich keine Aktionen.

@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); 
} 

}

+0

Ja, es sollte vollen Satz zurückgeben.Pls zeigen, wie Sie Bit in Dao-Level bekommen? – xyz

+0

mmm, in dao ich nur create, aber getter call in controller Set orderSet = bid.getOrders(); –

+0

Erstellen/Lesen/Aktualisieren/Löschen Operationen auf der "Entity" sollte im 'Repository' sein, nicht im' Controller'. –

Antwort

0

Versuchen Sie, diese

  • von eins zu mehreren Seiten

    @OneToMany (targetEntity = Order.class, cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER) 
    
    @JoinColumn (name = "order_id", referencedColumnName = "id") 
    
  • von vielen auf der einen Seite

    @ManyToOne(targetEntity = Bid.class, optional = true,fetch = FetchType.EAGER,cascade = 
         CascadeType.ALL) 
    
    @JoinColumn(name = "order_id", referencedColumnName = "id") 
    
Verwandte Themen