Aktywne Wpisy
Nicolaus_Steno1 +519
TLDR: zweryfikowałem i wg mnie matka polaka jest prostytutka i dlatego robie ten wpis żebyście wiedzieli ze chłopak zamiast oddać matce cześć ze 100k jakie bierze za walke woli kłamać i kazac matce dalej się prostytuować
Zgodnie z zapowiedzią odwiedziłem Beatris (aka Bella, GFE RAFAELLA, Angel GFE)
Zmienia co parę dni miasto, ale ostatecznie udało mi się dojechać i dojść tam gdzie trzeba #pdk ( ͡° ͜ʖ ͡°)
Zgodnie z zapowiedzią odwiedziłem Beatris (aka Bella, GFE RAFAELLA, Angel GFE)
Zmienia co parę dni miasto, ale ostatecznie udało mi się dojechać i dojść tam gdzie trzeba #pdk ( ͡° ͜ʖ ͡°)
jestemtunew +261
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Session session = transactionManager.getSessionFactory().openSession();
Transaction transaction = session.beginTransaction();
Item item = new Item();
session.persist(item);
item.setName("nowyItem");
Bid bid = new Bid();
bid.setAmount(100);
item.getBids().add(bid);
transaction.commit();
Zapisuje mi sam item bez bid'a , mimo że zatwierdzam transakcję dopiero na końcu? jeśli przerzucę session.persist nad transaction.commit, to oba przedmioty są zapisywane ( ͡° ʖ̯ ͡°) Coś nie tak z dirty checking?
@interface może Ty coś wiesz ( ͡° ͜ʖ ͡°)
#hibernate #jpa #java #programowanie #naukaprogramowania
Komentarz usunięty przez autora
@Entity
public class Bid {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
private Item item;
@Entity
@ToString
public class Item {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@OneToMany(mappedBy = "item", cascade = CascadeType.PERSIST)
private Set bids = new HashSet<>();
public Set getBids() {
return bids;
}
public void setBids(Set bids) {
this.bids = bids;
}
Jeśli persist() przeniesiesz przed sam commit, to operacje persist() jest kaskadowo przenoszona także na wszystkie Bidy zgodnie z cascade type, więc one też
Komentarz usunięty przez autora
@Porana123: spróbowałem, nie pomogło ( ͡° ʖ̯ ͡°)
Komentarz usunięty przez autora
Czyli ten kod ze screena nie zadziała tak że zostaną równiez zapisane bidy, tak?
To wytłumacz mi czy gdzieś robię błąd, powinno to działać tak:
1) Tworzę nowy obiekt Item i wywołuję z nim metodę persist() - od tej pory Item jest w stanie managed
a więc jeśli zmieni się jego stan, to zmiany zostaną zapisane do bazy (dirty checking)
2) tworzę nowy obiekt bid, jest to zwykły obiekt javowy, niezwiązany z
@OneToMany(mappedBy = "item", cascade = CascadeType.ALL)
to teraz zapisywane są bidy ( z takim samym kodem jak we wpisie), chyba transaction.commit(); nie działa tak jak sobie to wyobrażam
@OneToMany(mappedBy = "item")
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
protected Set bids = new HashSet<>();
http://stackoverflow.com/questions/18345598/hibernate-manytoone-only-works-with-cascadetype-all
dzięki za pomoc panowie
import org.springframework.orm.hibernate5.HibernateTransactionManager;
Dzięki za zainteresowanie :)