OneToMany bidirecional sem usar mappedBy

Implementei uma associação OneToMany bidirecional usando anotações de hibernação. Eu já vi muitos exemplos na internet e li que o atributo mappedBy precisa ser especificado no lado OneToMany da associação. (Estive analisando o exemplo aqui -https: //vladmihalcea.com/the-best-way-to-map-a-onetomany-association-with-jpa-and-hibernate) No entanto, o código de exemplo que escrevi sem usar o atributo mappedBy funciona perfeitamente. O seguinte é o meu código:

@Entity
@Table(name="Cart")
public class Cart {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;

@Column(name="name")
private String name;

@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="cart_id")
private List<Item> items;
//getters and setters
}

A seguir, a classe Item:

@Entity
@Table(name="Item")
public class Item {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;

@Column(name="name")
private String name;

@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
private Cart cart;
//getters and setters
}

O código a seguir salva dados:

public static void saveCart(Session session){
Transaction tx = session.beginTransaction();

    Cart c1 = new Cart();
    c1.setName("Cart 1");

    Item item1 = new Item();
    item1.setName("item1");

    Item item2 = new Item();
    item2.setName("item2");

    List<Item> items = new ArrayList<Item>();
    items.add(item1);
    items.add(item2);

    c1.setItems(items);

    session.save(c1);
    tx.commit();
}

Este código não usa o atributo mappedBy e funciona bem, os dados são salvos corretamente nas tabelas. Então, minha abordagem está correta? No exemplo emhttps: //vladmihalcea.com/the-best-way-to-map-a-onetomany-association-with-jpa-and-hibernate o atributo mappedBy é usado com a anotação OneToMany e JoinColumn é especificado com a anotação ManyToOn

Então, qual abordagem está correta / melhor?

questionAnswers(0)

yourAnswerToTheQuestion