parent
fda7ff2690
commit
a444d51ae1
|
@ -0,0 +1,71 @@
|
||||||
|
package com.baeldung.hibernate.oneToMany.main;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.hibernate.Session;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
import org.hibernate.Transaction;
|
||||||
|
|
||||||
|
import com.baeldung.hibernate.oneToMany.config.HibernateAnnotationUtil;
|
||||||
|
import com.baeldung.hibernate.oneToMany.model.Cart;
|
||||||
|
import com.baeldung.hibernate.oneToMany.model.Items;
|
||||||
|
import com.baeldung.hibernate.oneToMany.model.ItemsOIO;
|
||||||
|
|
||||||
|
public class HibernateManyisOwningSide {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
Cart cart = new Cart();
|
||||||
|
Cart cart2 = new Cart();
|
||||||
|
|
||||||
|
Items item1 = new Items(cart);
|
||||||
|
Items item2 = new Items(cart2);
|
||||||
|
Set<Items> itemsSet = new HashSet<Items>();
|
||||||
|
itemsSet.add(item1);
|
||||||
|
itemsSet.add(item2);
|
||||||
|
|
||||||
|
cart.setItems(itemsSet);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SessionFactory sessionFactory = null;
|
||||||
|
Session session = null;
|
||||||
|
Transaction tx = null;
|
||||||
|
try {
|
||||||
|
// Get Session
|
||||||
|
sessionFactory = HibernateAnnotationUtil.getSessionFactory();
|
||||||
|
session = sessionFactory.getCurrentSession();
|
||||||
|
System.out.println("Session created");
|
||||||
|
// start transaction
|
||||||
|
tx = session.beginTransaction();
|
||||||
|
// Save the Model object
|
||||||
|
session.save(cart);
|
||||||
|
session.save(cart2);
|
||||||
|
session.save(item1);
|
||||||
|
session.save(item2);
|
||||||
|
// Commit transaction
|
||||||
|
tx.commit();
|
||||||
|
session = sessionFactory.getCurrentSession();
|
||||||
|
tx = session.beginTransaction();
|
||||||
|
|
||||||
|
item1 = (Items) session.get(Items.class, new Long(1));
|
||||||
|
item2 = (Items) session.get(Items.class, new Long(2));
|
||||||
|
tx.commit();
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("item1 ID=" + item1.getId() + ", Foreign Key CartOIO ID=" + item1.getCart()
|
||||||
|
.getId());
|
||||||
|
System.out.println("item2 ID=" + item2.getId() + ", Foreign Key CartOIO ID=" + item2.getCart()
|
||||||
|
.getId());
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("Exception occured. " + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if (!sessionFactory.isClosed()) {
|
||||||
|
System.out.println("Closing SessionFactory");
|
||||||
|
sessionFactory.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
package com.baeldung.hibernate.oneToMany.main;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.hibernate.Session;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
import org.hibernate.Transaction;
|
||||||
|
|
||||||
|
import com.baeldung.hibernate.oneToMany.config.HibernateAnnotationUtil;
|
||||||
|
import com.baeldung.hibernate.oneToMany.model.CartOIO;
|
||||||
|
import com.baeldung.hibernate.oneToMany.model.ItemsOIO;
|
||||||
|
|
||||||
|
public class HibernateOneisOwningSide {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
CartOIO cart = new CartOIO();
|
||||||
|
CartOIO cart2 = new CartOIO();
|
||||||
|
|
||||||
|
ItemsOIO item1 = new ItemsOIO(cart);
|
||||||
|
ItemsOIO item2 = new ItemsOIO(cart2);
|
||||||
|
Set<ItemsOIO> itemsSet = new HashSet<ItemsOIO>();
|
||||||
|
itemsSet.add(item1);
|
||||||
|
itemsSet.add(item2);
|
||||||
|
|
||||||
|
cart.setItems(itemsSet);
|
||||||
|
|
||||||
|
SessionFactory sessionFactory = null;
|
||||||
|
Session session = null;
|
||||||
|
Transaction tx = null;
|
||||||
|
try {
|
||||||
|
// Get Session
|
||||||
|
sessionFactory = HibernateAnnotationUtil.getSessionFactory();
|
||||||
|
session = sessionFactory.getCurrentSession();
|
||||||
|
System.out.println("Session created");
|
||||||
|
// start transaction
|
||||||
|
tx = session.beginTransaction();
|
||||||
|
// Save the Model object
|
||||||
|
session.save(cart);
|
||||||
|
session.save(cart2);
|
||||||
|
session.save(item1);
|
||||||
|
session.save(item2);
|
||||||
|
// Commit transaction
|
||||||
|
tx.commit();
|
||||||
|
|
||||||
|
session = sessionFactory.getCurrentSession();
|
||||||
|
tx = session.beginTransaction();
|
||||||
|
item1 = (ItemsOIO) session.get(ItemsOIO.class, new Long(1));
|
||||||
|
item2 = (ItemsOIO) session.get(ItemsOIO.class, new Long(2));
|
||||||
|
tx.commit();
|
||||||
|
|
||||||
|
System.out.println("item1 ID=" + item1.getId() + ", Foreign Key CartOIO ID=" + item1.getCartOIO()
|
||||||
|
.getId());
|
||||||
|
System.out.println("item2 ID=" + item2.getId() + ", Foreign Key CartOIO ID=" + item2.getCartOIO()
|
||||||
|
.getId());
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("Exception occured. " + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if (!sessionFactory.isClosed()) {
|
||||||
|
System.out.println("Closing SessionFactory");
|
||||||
|
sessionFactory.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
package com.baeldung.hibernate.oneToMany.model;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.OneToMany;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "CARTOIO")
|
||||||
|
public class CartOIO {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private long id;
|
||||||
|
|
||||||
|
@OneToMany
|
||||||
|
@JoinColumn(name = "cart_id") // we need to duplicate the physical information
|
||||||
|
private Set<ItemsOIO> items;
|
||||||
|
|
||||||
|
public long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<ItemsOIO> getItems() {
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItems(Set<ItemsOIO> items) {
|
||||||
|
this.items = items;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package com.baeldung.hibernate.oneToMany.model;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.ManyToOne;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "ITEMSOIO")
|
||||||
|
public class ItemsOIO {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private long id;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JoinColumn(name = "cart_id", insertable = false, updatable = false)
|
||||||
|
private CartOIO cart;
|
||||||
|
|
||||||
|
// Hibernate requires no-args constructor
|
||||||
|
public ItemsOIO() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemsOIO(CartOIO c) {
|
||||||
|
this.cart = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CartOIO getCartOIO() {
|
||||||
|
return cart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCartOIO(CartOIO cart) {
|
||||||
|
this.cart = cart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -9,11 +9,13 @@
|
||||||
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/spring_hibernate_one_to_many?createDatabaseIfNotExist=true</property>
|
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/spring_hibernate_one_to_many?createDatabaseIfNotExist=true</property>
|
||||||
<property name="hibernate.connection.username">myuser</property>
|
<property name="hibernate.connection.username">myuser</property>
|
||||||
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
|
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
|
||||||
|
<property name="hbm2ddl.auto">create</property>
|
||||||
<property name="hibernate.current_session_context_class">thread</property>
|
<property name="hibernate.current_session_context_class">thread</property>
|
||||||
<property name="hibernate.show_sql">true</property>
|
<property name="hibernate.show_sql">true</property>
|
||||||
|
|
||||||
<mapping class="com.baeldung.hibernate.oneToMany.model.Cart"/>
|
<mapping class="com.baeldung.hibernate.oneToMany.model.Cart"/>
|
||||||
<mapping class="com.baeldung.hibernate.oneToMany.model.Items"/>
|
<mapping class="com.baeldung.hibernate.oneToMany.model.Items"/>
|
||||||
|
<mapping class="com.baeldung.hibernate.oneToMany.model.CartOIO"/>
|
||||||
|
<mapping class="com.baeldung.hibernate.oneToMany.model.ItemsOIO"/>
|
||||||
</session-factory>
|
</session-factory>
|
||||||
</hibernate-configuration>
|
</hibernate-configuration>
|
||||||
|
|
Loading…
Reference in New Issue