From dd457fa63a2118d78c6d6c12527475b164e87627 Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Thu, 18 Aug 2016 07:11:23 +0200 Subject: [PATCH 1/8] Add EventListener example --- .../startup/EventListenerExampleBean.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 spring-all/src/main/java/org/baeldung/startup/EventListenerExampleBean.java diff --git a/spring-all/src/main/java/org/baeldung/startup/EventListenerExampleBean.java b/spring-all/src/main/java/org/baeldung/startup/EventListenerExampleBean.java new file mode 100644 index 0000000000..e9cd1a159d --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/startup/EventListenerExampleBean.java @@ -0,0 +1,19 @@ +package org.baeldung.startup; + +import org.apache.log4j.Logger; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; + +@Component +public class EventListenerExampleBean { + private static final Logger LOG = Logger.getLogger(EventListenerExampleBean.class); + + public static int counter; + + @EventListener + public void onApplicationEvent(ContextRefreshedEvent event) { + LOG.info("Increment counter"); + counter++; + } +} From 9c7ef6c5f34fda36dec8a97b12352a2d7aca7098 Mon Sep 17 00:00:00 2001 From: Catalin Date: Thu, 18 Aug 2016 08:27:14 +0300 Subject: [PATCH 2/8] Update README.md (#601) From b47d6543f2b53f00b8f7c42a0734dca4ae56b8f1 Mon Sep 17 00:00:00 2001 From: PRITAM BANERJEE Date: Thu, 18 Aug 2016 01:46:05 -0700 Subject: [PATCH 3/8] Annotation Based Fetching (#617) * BAEL-212 Contains: 1. Hibernate Criteria Query Classes 2. Hibernate Criteria Query Test * Updating the config file and the HibernateUtil class * Hibernate Criteria Queries Example * Hibernate Fetching : Eager Loading vs Lazy Loading * Hibernate Criteria Query files * Hibernate Eager Loading and Lazy Loading Changes * Latest Changes on Fetching * Fetching Changes * Latest Changes * Latest Changes * Undoing the changes * Annotation based changes on Hibernate Fetching --- .../fetching/model/OrderDetailEager.java | 78 +++++++++++++ ...{OrderDetail.java => OrderDetailLazy.java} | 55 +++++---- .../hibernate/fetching/model/User.java | 93 --------------- .../hibernate/fetching/model/UserEager.java | 87 ++++++++++++++ .../hibernate/fetching/model/UserLazy.java | 88 ++++++++++++++ .../fetching/view/FetchingAppView.java | 107 +++++++----------- .../src/main/resources/fetching.cfg.xml | 7 +- .../src/main/resources/fetchingLazy.cfg.xml | 4 +- .../resources/fetching_create_queries.sql | 5 - .../fetching/HibernateFetchingTest.java | 10 +- .../fetching/model/OrderDetail.hbm.xml | 26 ----- .../hibernate/fetching/model/User.hbm.xml | 31 ----- .../hibernate/fetching/model/UserLazy.hbm.xml | 31 ----- .../src/test/resources/fetching.cfg.xml | 5 +- .../src/test/resources/fetchingLazy.cfg.xml | 5 +- 15 files changed, 340 insertions(+), 292 deletions(-) create mode 100644 spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailEager.java rename spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/{OrderDetail.java => OrderDetailLazy.java} (53%) delete mode 100644 spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/User.java create mode 100644 spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserEager.java create mode 100644 spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserLazy.java delete mode 100644 spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/OrderDetail.hbm.xml delete mode 100644 spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/User.hbm.xml delete mode 100644 spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/UserLazy.hbm.xml diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailEager.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailEager.java new file mode 100644 index 0000000000..88acd9554c --- /dev/null +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailEager.java @@ -0,0 +1,78 @@ +package com.baeldung.hibernate.fetching.model; + +import java.io.Serializable; +import java.sql.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table (name = "USER_ORDER") +public class OrderDetailEager implements Serializable{ + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue + @Column(name="ORDER_ID") + private Long orderId; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name="USER_ID") + private UserEager user; + + public OrderDetailEager(){ + } + + public OrderDetailEager(Date orderDate, String orderDesc) { + super(); + } + + public UserEager getUser() { + return user; + } + + public void setUser(UserEager user) { + this.user = user; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((orderId == null) ? 0 : orderId.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + OrderDetailEager other = ( OrderDetailEager) obj; + if (orderId == null) { + if (other.orderId != null) + return false; + } else if (!orderId.equals(other.orderId)) + return false; + + return true; + } + + public Long getOrderId() { + return orderId; + } + public void setOrderId(Long orderId) { + this.orderId = orderId; + } +} + + diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetail.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailLazy.java similarity index 53% rename from spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetail.java rename to spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailLazy.java index 80cb915e52..2f73d3d5dc 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetail.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailLazy.java @@ -3,41 +3,45 @@ package com.baeldung.hibernate.fetching.model; import java.io.Serializable; import java.sql.Date; -public class OrderDetail implements Serializable{ +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table (name = "USER_ORDER") +public class OrderDetailLazy implements Serializable{ private static final long serialVersionUID = 1L; - private Long orderId; - private Date orderDate; - private String orderDesc; - private User user; - public OrderDetail(){ + @Id + @GeneratedValue + @Column(name="ORDER_ID") + private Long orderId; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name="USER_ID") + private UserLazy user; + + public OrderDetailLazy(){ } - public OrderDetail(Date orderDate, String orderDesc) { - super(); - this.orderDate = orderDate; - this.orderDesc = orderDesc; + public OrderDetailLazy(Date orderDate, String orderDesc) { + super(); } - public Date getOrderDate() { - return orderDate; - } - public void setOrderDate(Date orderDate) { - this.orderDate = orderDate; - } - public String getOrderDesc() { - return orderDesc; - } - public void setOrderDesc(String orderDesc) { - this.orderDesc = orderDesc; - } - public User getUser() { + public UserLazy getUser() { return user; } - public void setUser(User user) { + + public void setUser(UserLazy user) { this.user = user; } + @Override public int hashCode() { final int prime = 31; @@ -53,7 +57,7 @@ public class OrderDetail implements Serializable{ return false; if (getClass() != obj.getClass()) return false; - OrderDetail other = (OrderDetail) obj; + OrderDetailLazy other = (OrderDetailLazy) obj; if (orderId == null) { if (other.orderId != null) return false; @@ -62,6 +66,7 @@ public class OrderDetail implements Serializable{ return true; } + public Long getOrderId() { return orderId; } diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/User.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/User.java deleted file mode 100644 index fa995319fd..0000000000 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/User.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.baeldung.hibernate.fetching.model; - -import java.io.Serializable; -import java.util.HashSet; -import java.util.Set; - -public class User implements Serializable { - - private static final long serialVersionUID = 1L; - private Long userId; - private String userName; - private String firstName; - private String lastName; - private Set orderDetail = new HashSet(); - - public User() { - } - - public User(final Long userId, final String userName, final String firstName, final String lastName) { - super(); - this.userId = userId; - this.userName = userName; - this.firstName = firstName; - this.lastName = lastName; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((userId == null) ? 0 : userId.hashCode()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - final User other = (User) obj; - if (userId == null) { - if (other.userId != null) - return false; - } else if (!userId.equals(other.userId)) - return false; - return true; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(final Long userId) { - this.userId = userId; - } - - public String getUserName() { - return userName; - } - - public void setUserName(final String userName) { - this.userName = userName; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(final String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(final String lastName) { - this.lastName = lastName; - } - - public Set getOrderDetail() { - return orderDetail; - } - - public void setOrderDetail(Set orderDetail) { - this.orderDetail = orderDetail; - } - - -} diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserEager.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserEager.java new file mode 100644 index 0000000000..f5652bf96e --- /dev/null +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserEager.java @@ -0,0 +1,87 @@ +package com.baeldung.hibernate.fetching.model; + +import java.io.Serializable; +import java.util.HashSet; +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.UniqueConstraint; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EntityListeners; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.NamedQuery; +import javax.persistence.OneToMany; +import javax.persistence.PrePersist; +import javax.persistence.PreRemove; +import javax.persistence.PreUpdate; + +@Entity +@Table (name = "USER") +public class UserEager implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue + @Column(name="USER_ID") + private Long userId; + + @OneToMany(fetch = FetchType.EAGER, mappedBy = "user") + private Set orderDetail = new HashSet(); + + public UserEager() { + } + + public UserEager(final Long userId) { + super(); + this.userId = userId; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((userId == null) ? 0 : userId.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final UserEager other = (UserEager) obj; + if (userId == null) { + if (other.userId != null) + return false; + } else if (!userId.equals(other.userId)) + return false; + return true; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(final Long userId) { + this.userId = userId; + } + + public Set getOrderDetail() { + return orderDetail; + } + + public void setOrderDetail(Set orderDetail) { + this.orderDetail = orderDetail; + } + +} diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserLazy.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserLazy.java new file mode 100644 index 0000000000..56fc76e354 --- /dev/null +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserLazy.java @@ -0,0 +1,88 @@ +package com.baeldung.hibernate.fetching.model; + +import java.io.Serializable; +import java.util.HashSet; +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.UniqueConstraint; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EntityListeners; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.NamedQuery; +import javax.persistence.OneToMany; +import javax.persistence.PrePersist; +import javax.persistence.PreRemove; +import javax.persistence.PreUpdate; + +@Entity +@Table (name = "USER") +public class UserLazy implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue + @Column(name="USER_ID") + private Long userId; + + @OneToMany(fetch = FetchType.LAZY, mappedBy = "user") + private Set orderDetail = new HashSet(); + + public UserLazy() { + } + + public UserLazy(final Long userId) { + super(); + this.userId = userId; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((userId == null) ? 0 : userId.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final UserLazy other = (UserLazy) obj; + if (userId == null) { + if (other.userId != null) + return false; + } else if (!userId.equals(other.userId)) + return false; + return true; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(final Long userId) { + this.userId = userId; + } + + + public Set getOrderDetail() { + return orderDetail; + } + + public void setOrderDetail(Set orderDetail) { + this.orderDetail = orderDetail; + } + +} diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java index c55f65cdbf..a995ac260d 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java @@ -1,103 +1,74 @@ package com.baeldung.hibernate.fetching.view; -import java.sql.Date; import java.util.List; import java.util.Set; -import org.hibernate.Hibernate; import org.hibernate.Session; import org.hibernate.Transaction; - import com.baeldung.hibernate.fetching.util.HibernateUtil; +import com.baeldung.hibernate.fetching.model.OrderDetailEager; +import com.baeldung.hibernate.fetching.model.OrderDetailLazy; -import com.baeldung.hibernate.fetching.model.OrderDetail; - -import com.baeldung.hibernate.fetching.model.User; - +import com.baeldung.hibernate.fetching.model.UserLazy; +import com.baeldung.hibernate.fetching.model.UserEager; public class FetchingAppView { - public FetchingAppView(){ - + public FetchingAppView() { + } - - //lazily loaded - public Set lazyLoaded(){ + + // lazily loaded + public Set lazyLoaded() { final Session sessionLazy = HibernateUtil.getHibernateSession("lazy"); - List users = sessionLazy.createQuery("From User").list(); - User userLazyLoaded = new User(); - userLazyLoaded = users.get(3); - //since data is lazyloaded so data won't be initialized - Set orderDetailSet = userLazyLoaded.getOrderDetail(); - return (orderDetailSet); + List users = sessionLazy.createQuery("From UserLazy").list(); + UserLazy userLazyLoaded = new UserLazy(); + userLazyLoaded = users.get(3); + // since data is lazyloaded so data won't be initialized + Set orderDetailSet = userLazyLoaded.getOrderDetail(); + return (orderDetailSet); } - - //eagerly loaded - public Set eagerLoaded(){ + + // eagerly loaded + public Set eagerLoaded() { final Session sessionEager = HibernateUtil.getHibernateSession(); - //data should be loaded in the following line - //also note the queries generated - List users =sessionEager.createQuery("From User").list(); - User userEagerLoaded = new User(); - userEagerLoaded = users.get(3); - Set orderDetailSet = userEagerLoaded.getOrderDetail(); - return orderDetailSet; + // data should be loaded in the following line + // also note the queries generated + List user = sessionEager.createQuery("From UserEager").list(); + UserEager userEagerLoaded = new UserEager(); + userEagerLoaded = user.get(3); + Set orderDetailSet = userEagerLoaded.getOrderDetail(); + return orderDetailSet; } - - - //creates test data - //call this method to create the data in the database + + // creates test data + // call this method to create the data in the database public void createTestData() { - final Session session = HibernateUtil.getHibernateSession(); + final Session session = HibernateUtil.getHibernateSession("lazy"); Transaction tx = null; tx = session.beginTransaction(); - final User user1 = new User(); - final User user2 = new User(); - final User user3 = new User(); - - user1.setFirstName("Priyam"); - user1.setLastName("Banerjee"); - user1.setUserName("priyambanerjee"); + final UserLazy user1 = new UserLazy(); + final UserLazy user2 = new UserLazy(); + final UserLazy user3 = new UserLazy(); + session.save(user1); - - user2.setFirstName("Navneeta"); - user2.setLastName("Mukherjee"); - user2.setUserName("nmukh"); session.save(user2); - - user3.setFirstName("Molly"); - user3.setLastName("Banerjee"); - user3.setUserName("mollyb"); session.save(user3); - final OrderDetail order1 = new OrderDetail(); - final OrderDetail order2 = new OrderDetail(); - final OrderDetail order3 = new OrderDetail(); - final OrderDetail order4 = new OrderDetail(); - final OrderDetail order5 = new OrderDetail(); + final OrderDetailLazy order1 = new OrderDetailLazy(); + final OrderDetailLazy order2 = new OrderDetailLazy(); + final OrderDetailLazy order3 = new OrderDetailLazy(); + final OrderDetailLazy order4 = new OrderDetailLazy(); + final OrderDetailLazy order5 = new OrderDetailLazy(); - order1.setOrderDesc("First Order"); - order1.setOrderDate(new Date(2014, 10, 12)); order1.setUser(user1); - - order2.setOrderDesc("Second Order"); - order2.setOrderDate(new Date(2016, 10, 25)); order2.setUser(user1); - - order3.setOrderDesc("Third Order"); - order3.setOrderDate(new Date(2015, 2, 17)); order3.setUser(user2); - - order4.setOrderDesc("Fourth Order"); - order4.setOrderDate(new Date(2014, 10, 1)); order4.setUser(user2); - - order5.setOrderDesc("Fifth Order"); - order5.setOrderDate(new Date(2014, 9, 11)); order5.setUser(user3); - + session.saveOrUpdate(order1); session.saveOrUpdate(order2); session.saveOrUpdate(order3); diff --git a/spring-hibernate4/src/main/resources/fetching.cfg.xml b/spring-hibernate4/src/main/resources/fetching.cfg.xml index 4a7e574dda..1b9a4a191c 100644 --- a/spring-hibernate4/src/main/resources/fetching.cfg.xml +++ b/spring-hibernate4/src/main/resources/fetching.cfg.xml @@ -11,7 +11,10 @@ iamtheking org.hibernate.dialect.MySQLDialect true - - + validate + + + + \ No newline at end of file diff --git a/spring-hibernate4/src/main/resources/fetchingLazy.cfg.xml b/spring-hibernate4/src/main/resources/fetchingLazy.cfg.xml index 1f9a7df94e..ec87538e3b 100644 --- a/spring-hibernate4/src/main/resources/fetchingLazy.cfg.xml +++ b/spring-hibernate4/src/main/resources/fetchingLazy.cfg.xml @@ -11,7 +11,7 @@ iamtheking org.hibernate.dialect.MySQLDialect true - - + + \ No newline at end of file diff --git a/spring-hibernate4/src/main/resources/fetching_create_queries.sql b/spring-hibernate4/src/main/resources/fetching_create_queries.sql index 11a4239e0d..b36d9828f1 100644 --- a/spring-hibernate4/src/main/resources/fetching_create_queries.sql +++ b/spring-hibernate4/src/main/resources/fetching_create_queries.sql @@ -1,17 +1,12 @@ CREATE TABLE `user` ( `user_id` int(10) NOT NULL AUTO_INCREMENT, - `USERNAME` varchar(100) DEFAULT NULL, - `FIRST_NAME` varchar(255) NOT NULL, - `LAST_NAME` varchar(255) NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1 ; CREATE TABLE `user_order` ( `ORDER_ID` int(10) NOT NULL AUTO_INCREMENT, - `ORDER_DATE` date DEFAULT NULL, `USER_ID` int(10) NOT NULL DEFAULT '0', - `ORDER_DESC` varchar(1024) DEFAULT NULL, PRIMARY KEY (`ORDER_ID`,`USER_ID`), KEY `USER_ID` (`USER_ID`), CONSTRAINT `user_order_ibfk_1` FOREIGN KEY (`USER_ID`) REFERENCES `USER` (`user_id`) diff --git a/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java b/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java index fb3d0f92fc..409882f71b 100644 --- a/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java +++ b/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java @@ -7,15 +7,15 @@ import org.hibernate.Hibernate; import org.junit.Before; import org.junit.Test; -import com.baeldung.hibernate.fetching.model.OrderDetail; - +import com.baeldung.hibernate.fetching.model.OrderDetailEager; +import com.baeldung.hibernate.fetching.model.OrderDetailLazy; import com.baeldung.hibernate.fetching.view.FetchingAppView; public class HibernateFetchingTest { //this loads sample data in the database - @Before +// @Before public void addFecthingTestData(){ FetchingAppView fav = new FetchingAppView(); fav.createTestData(); @@ -27,7 +27,7 @@ public class HibernateFetchingTest { @Test public void testLazyFetching() { FetchingAppView fav = new FetchingAppView(); - Set orderDetalSetLazy = fav.lazyLoaded(); + Set orderDetalSetLazy = fav.lazyLoaded(); assertFalse(Hibernate.isInitialized(orderDetalSetLazy)); } @@ -37,7 +37,7 @@ public class HibernateFetchingTest { @Test public void testEagerFetching() { FetchingAppView fav = new FetchingAppView(); - Set orderDetalSetEager = fav.eagerLoaded(); + Set orderDetalSetEager = fav.eagerLoaded(); assertTrue(Hibernate.isInitialized(orderDetalSetEager)); } } diff --git a/spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/OrderDetail.hbm.xml b/spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/OrderDetail.hbm.xml deleted file mode 100644 index e0b6516b47..0000000000 --- a/spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/OrderDetail.hbm.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/User.hbm.xml b/spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/User.hbm.xml deleted file mode 100644 index 88882b973e..0000000000 --- a/spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/User.hbm.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/UserLazy.hbm.xml b/spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/UserLazy.hbm.xml deleted file mode 100644 index 2f941fe8b0..0000000000 --- a/spring-hibernate4/src/test/resources/com/baeldung/hibernate/fetching/model/UserLazy.hbm.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-hibernate4/src/test/resources/fetching.cfg.xml b/spring-hibernate4/src/test/resources/fetching.cfg.xml index 4a7e574dda..acee7008ba 100644 --- a/spring-hibernate4/src/test/resources/fetching.cfg.xml +++ b/spring-hibernate4/src/test/resources/fetching.cfg.xml @@ -11,7 +11,8 @@ iamtheking org.hibernate.dialect.MySQLDialect true - - + + + \ No newline at end of file diff --git a/spring-hibernate4/src/test/resources/fetchingLazy.cfg.xml b/spring-hibernate4/src/test/resources/fetchingLazy.cfg.xml index 1f9a7df94e..b19b75c153 100644 --- a/spring-hibernate4/src/test/resources/fetchingLazy.cfg.xml +++ b/spring-hibernate4/src/test/resources/fetchingLazy.cfg.xml @@ -11,7 +11,8 @@ iamtheking org.hibernate.dialect.MySQLDialect true - - + + + \ No newline at end of file From 6973039ea9b2983ff7c752351614bd40a2f7d8af Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Thu, 18 Aug 2016 19:04:17 +0200 Subject: [PATCH 4/8] Refactor Lazy/Eager loading examples --- ...{OrderDetailLazy.java => OrderDetail.java} | 30 +---- .../fetching/model/OrderDetailEager.java | 78 ------------ .../hibernate/fetching/model/UserEager.java | 24 +--- .../hibernate/fetching/model/UserLazy.java | 24 +--- .../fetching/util/HibernateUtil.java | 3 +- .../fetching/view/FetchingAppView.java | 118 ++++++++---------- .../src/main/resources/fetchingLazy.cfg.xml | 2 +- .../fetching/HibernateFetchingTest.java | 5 +- .../src/test/resources/fetchingLazy.cfg.xml | 2 +- 9 files changed, 72 insertions(+), 214 deletions(-) rename spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/{OrderDetailLazy.java => OrderDetail.java} (57%) delete mode 100644 spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailEager.java diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailLazy.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetail.java similarity index 57% rename from spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailLazy.java rename to spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetail.java index 2f73d3d5dc..ec8dc32200 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailLazy.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetail.java @@ -1,20 +1,12 @@ package com.baeldung.hibernate.fetching.model; +import javax.persistence.*; import java.io.Serializable; import java.sql.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - @Entity @Table (name = "USER_ORDER") -public class OrderDetailLazy implements Serializable{ +public class OrderDetail implements Serializable{ private static final long serialVersionUID = 1L; @@ -23,25 +15,13 @@ public class OrderDetailLazy implements Serializable{ @Column(name="ORDER_ID") private Long orderId; - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name="USER_ID") - private UserLazy user; - - public OrderDetailLazy(){ + public OrderDetail(){ } - public OrderDetailLazy(Date orderDate, String orderDesc) { + public OrderDetail(Date orderDate, String orderDesc) { super(); } - public UserLazy getUser() { - return user; - } - - public void setUser(UserLazy user) { - this.user = user; - } - @Override public int hashCode() { final int prime = 31; @@ -57,7 +37,7 @@ public class OrderDetailLazy implements Serializable{ return false; if (getClass() != obj.getClass()) return false; - OrderDetailLazy other = (OrderDetailLazy) obj; + OrderDetail other = (OrderDetail) obj; if (orderId == null) { if (other.orderId != null) return false; diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailEager.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailEager.java deleted file mode 100644 index 88acd9554c..0000000000 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/OrderDetailEager.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.baeldung.hibernate.fetching.model; - -import java.io.Serializable; -import java.sql.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Entity -@Table (name = "USER_ORDER") -public class OrderDetailEager implements Serializable{ - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue - @Column(name="ORDER_ID") - private Long orderId; - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name="USER_ID") - private UserEager user; - - public OrderDetailEager(){ - } - - public OrderDetailEager(Date orderDate, String orderDesc) { - super(); - } - - public UserEager getUser() { - return user; - } - - public void setUser(UserEager user) { - this.user = user; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((orderId == null) ? 0 : orderId.hashCode()); - return result; - } - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - OrderDetailEager other = ( OrderDetailEager) obj; - if (orderId == null) { - if (other.orderId != null) - return false; - } else if (!orderId.equals(other.orderId)) - return false; - - return true; - } - - public Long getOrderId() { - return orderId; - } - public void setOrderId(Long orderId) { - this.orderId = orderId; - } -} - - diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserEager.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserEager.java index f5652bf96e..22b4fdc76c 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserEager.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserEager.java @@ -1,26 +1,10 @@ package com.baeldung.hibernate.fetching.model; +import javax.persistence.*; import java.io.Serializable; import java.util.HashSet; import java.util.Set; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.UniqueConstraint; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EntityListeners; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.NamedQuery; -import javax.persistence.OneToMany; -import javax.persistence.PrePersist; -import javax.persistence.PreRemove; -import javax.persistence.PreUpdate; - @Entity @Table (name = "USER") public class UserEager implements Serializable { @@ -33,7 +17,7 @@ public class UserEager implements Serializable { private Long userId; @OneToMany(fetch = FetchType.EAGER, mappedBy = "user") - private Set orderDetail = new HashSet(); + private Set orderDetail = new HashSet(); public UserEager() { } @@ -76,11 +60,11 @@ public class UserEager implements Serializable { this.userId = userId; } - public Set getOrderDetail() { + public Set getOrderDetail() { return orderDetail; } - public void setOrderDetail(Set orderDetail) { + public void setOrderDetail(Set orderDetail) { this.orderDetail = orderDetail; } diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserLazy.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserLazy.java index 56fc76e354..5038fb90ef 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserLazy.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/model/UserLazy.java @@ -1,26 +1,10 @@ package com.baeldung.hibernate.fetching.model; +import javax.persistence.*; import java.io.Serializable; import java.util.HashSet; import java.util.Set; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.UniqueConstraint; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EntityListeners; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.NamedQuery; -import javax.persistence.OneToMany; -import javax.persistence.PrePersist; -import javax.persistence.PreRemove; -import javax.persistence.PreUpdate; - @Entity @Table (name = "USER") public class UserLazy implements Serializable { @@ -33,7 +17,7 @@ public class UserLazy implements Serializable { private Long userId; @OneToMany(fetch = FetchType.LAZY, mappedBy = "user") - private Set orderDetail = new HashSet(); + private Set orderDetail = new HashSet(); public UserLazy() { } @@ -77,11 +61,11 @@ public class UserLazy implements Serializable { } - public Set getOrderDetail() { + public Set getOrderDetail() { return orderDetail; } - public void setOrderDetail(Set orderDetail) { + public void setOrderDetail(Set orderDetail) { this.orderDetail = orderDetail; } diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/util/HibernateUtil.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/util/HibernateUtil.java index 27af8c9b8b..180e216220 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/util/HibernateUtil.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/util/HibernateUtil.java @@ -19,8 +19,7 @@ public class HibernateUtil { } // fetching.cfg.xml is used for this example - final Session session = sf.openSession(); - return session; + return sf.openSession(); } public static Session getHibernateSession() { diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java index a995ac260d..0e4c211bb8 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java @@ -1,82 +1,72 @@ package com.baeldung.hibernate.fetching.view; +import com.baeldung.hibernate.fetching.model.OrderDetail; +import com.baeldung.hibernate.fetching.model.OrderDetailEager; +import com.baeldung.hibernate.fetching.model.UserEager; +import com.baeldung.hibernate.fetching.model.UserLazy; +import com.baeldung.hibernate.fetching.util.HibernateUtil; +import org.hibernate.Session; +import org.hibernate.Transaction; + import java.util.List; import java.util.Set; -import org.hibernate.Session; -import org.hibernate.Transaction; - -import com.baeldung.hibernate.fetching.util.HibernateUtil; -import com.baeldung.hibernate.fetching.model.OrderDetailEager; -import com.baeldung.hibernate.fetching.model.OrderDetailLazy; - -import com.baeldung.hibernate.fetching.model.UserLazy; -import com.baeldung.hibernate.fetching.model.UserEager; - public class FetchingAppView { - public FetchingAppView() { + public FetchingAppView() { - } + } - // lazily loaded - public Set lazyLoaded() { - final Session sessionLazy = HibernateUtil.getHibernateSession("lazy"); - List users = sessionLazy.createQuery("From UserLazy").list(); - UserLazy userLazyLoaded = new UserLazy(); - userLazyLoaded = users.get(3); - // since data is lazyloaded so data won't be initialized - Set orderDetailSet = userLazyLoaded.getOrderDetail(); - return (orderDetailSet); - } + // lazily loaded + public Set lazyLoaded() { + final Session sessionLazy = HibernateUtil.getHibernateSession("lazy"); + List users = sessionLazy.createQuery("From UserLazy").list(); + UserLazy userLazyLoaded = new UserLazy(); + userLazyLoaded = users.get(3); + // since data is lazyloaded so data won't be initialized + return (userLazyLoaded.getOrderDetail()); + } - // eagerly loaded - public Set eagerLoaded() { - final Session sessionEager = HibernateUtil.getHibernateSession(); - // data should be loaded in the following line - // also note the queries generated - List user = sessionEager.createQuery("From UserEager").list(); - UserEager userEagerLoaded = new UserEager(); - userEagerLoaded = user.get(3); - Set orderDetailSet = userEagerLoaded.getOrderDetail(); - return orderDetailSet; - } + // eagerly loaded + public Set eagerLoaded() { + final Session sessionEager = HibernateUtil.getHibernateSession(); + // data should be loaded in the following line + // also note the queries generated + List user = sessionEager.createQuery("From UserEager").list(); + UserEager userEagerLoaded = new UserEager(); + userEagerLoaded = user.get(3); + return userEagerLoaded.getOrderDetail(); + } - // creates test data - // call this method to create the data in the database - public void createTestData() { + // creates test data + // call this method to create the data in the database + public void createTestData() { - final Session session = HibernateUtil.getHibernateSession("lazy"); - Transaction tx = null; - tx = session.beginTransaction(); - final UserLazy user1 = new UserLazy(); - final UserLazy user2 = new UserLazy(); - final UserLazy user3 = new UserLazy(); + final Session session = HibernateUtil.getHibernateSession("lazy"); + Transaction tx = null; + tx = session.beginTransaction(); + final UserLazy user1 = new UserLazy(); + final UserLazy user2 = new UserLazy(); + final UserLazy user3 = new UserLazy(); - session.save(user1); - session.save(user2); - session.save(user3); + session.save(user1); + session.save(user2); + session.save(user3); - final OrderDetailLazy order1 = new OrderDetailLazy(); - final OrderDetailLazy order2 = new OrderDetailLazy(); - final OrderDetailLazy order3 = new OrderDetailLazy(); - final OrderDetailLazy order4 = new OrderDetailLazy(); - final OrderDetailLazy order5 = new OrderDetailLazy(); + final OrderDetail order1 = new OrderDetail(); + final OrderDetail order2 = new OrderDetail(); + final OrderDetail order3 = new OrderDetail(); + final OrderDetail order4 = new OrderDetail(); + final OrderDetail order5 = new OrderDetail(); - order1.setUser(user1); - order2.setUser(user1); - order3.setUser(user2); - order4.setUser(user2); - order5.setUser(user3); + session.saveOrUpdate(order1); + session.saveOrUpdate(order2); + session.saveOrUpdate(order3); + session.saveOrUpdate(order4); + session.saveOrUpdate(order5); - session.saveOrUpdate(order1); - session.saveOrUpdate(order2); - session.saveOrUpdate(order3); - session.saveOrUpdate(order4); - session.saveOrUpdate(order5); + tx.commit(); + session.close(); - tx.commit(); - session.close(); - - } + } } diff --git a/spring-hibernate4/src/main/resources/fetchingLazy.cfg.xml b/spring-hibernate4/src/main/resources/fetchingLazy.cfg.xml index ec87538e3b..c5f608e1a7 100644 --- a/spring-hibernate4/src/main/resources/fetchingLazy.cfg.xml +++ b/spring-hibernate4/src/main/resources/fetchingLazy.cfg.xml @@ -12,6 +12,6 @@ org.hibernate.dialect.MySQLDialect true - + \ No newline at end of file diff --git a/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java b/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java index 409882f71b..46b633c112 100644 --- a/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java +++ b/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java @@ -4,11 +4,10 @@ import static org.junit.Assert.*; import java.util.Set; import org.hibernate.Hibernate; -import org.junit.Before; import org.junit.Test; import com.baeldung.hibernate.fetching.model.OrderDetailEager; -import com.baeldung.hibernate.fetching.model.OrderDetailLazy; +import com.baeldung.hibernate.fetching.model.OrderDetail; import com.baeldung.hibernate.fetching.view.FetchingAppView; public class HibernateFetchingTest { @@ -27,7 +26,7 @@ public class HibernateFetchingTest { @Test public void testLazyFetching() { FetchingAppView fav = new FetchingAppView(); - Set orderDetalSetLazy = fav.lazyLoaded(); + Set orderDetalSetLazy = fav.lazyLoaded(); assertFalse(Hibernate.isInitialized(orderDetalSetLazy)); } diff --git a/spring-hibernate4/src/test/resources/fetchingLazy.cfg.xml b/spring-hibernate4/src/test/resources/fetchingLazy.cfg.xml index b19b75c153..1dc37d0cf8 100644 --- a/spring-hibernate4/src/test/resources/fetchingLazy.cfg.xml +++ b/spring-hibernate4/src/test/resources/fetchingLazy.cfg.xml @@ -12,7 +12,7 @@ org.hibernate.dialect.MySQLDialect true - + \ No newline at end of file From 2675cbef0fe4db90011c2db084d7376a6bed02ad Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Thu, 18 Aug 2016 19:05:38 +0200 Subject: [PATCH 5/8] Refactor Lazy/Eager loading examples --- .../hibernate/fetching/view/FetchingAppView.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java index 0e4c211bb8..8817bb4809 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java @@ -21,8 +21,7 @@ public class FetchingAppView { public Set lazyLoaded() { final Session sessionLazy = HibernateUtil.getHibernateSession("lazy"); List users = sessionLazy.createQuery("From UserLazy").list(); - UserLazy userLazyLoaded = new UserLazy(); - userLazyLoaded = users.get(3); + UserLazy userLazyLoaded = users.get(3); // since data is lazyloaded so data won't be initialized return (userLazyLoaded.getOrderDetail()); } @@ -33,8 +32,7 @@ public class FetchingAppView { // data should be loaded in the following line // also note the queries generated List user = sessionEager.createQuery("From UserEager").list(); - UserEager userEagerLoaded = new UserEager(); - userEagerLoaded = user.get(3); + UserEager userEagerLoaded = user.get(3); return userEagerLoaded.getOrderDetail(); } @@ -43,8 +41,7 @@ public class FetchingAppView { public void createTestData() { final Session session = HibernateUtil.getHibernateSession("lazy"); - Transaction tx = null; - tx = session.beginTransaction(); + Transaction tx = session.beginTransaction(); final UserLazy user1 = new UserLazy(); final UserLazy user2 = new UserLazy(); final UserLazy user3 = new UserLazy(); From 779188929a18d1958af6c51e6d842a8c7edc62a2 Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Thu, 18 Aug 2016 20:24:52 +0200 Subject: [PATCH 6/8] Refactor Lazy/Eager loading examples --- .../hibernate/fetching/HibernateFetchingTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java b/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java index 46b633c112..c13848f0a5 100644 --- a/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java +++ b/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java @@ -1,14 +1,14 @@ package com.baeldung.hibernate.fetching; -import static org.junit.Assert.*; -import java.util.Set; - +import com.baeldung.hibernate.fetching.model.OrderDetail; +import com.baeldung.hibernate.fetching.view.FetchingAppView; import org.hibernate.Hibernate; import org.junit.Test; -import com.baeldung.hibernate.fetching.model.OrderDetailEager; -import com.baeldung.hibernate.fetching.model.OrderDetail; -import com.baeldung.hibernate.fetching.view.FetchingAppView; +import java.util.Set; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; public class HibernateFetchingTest { @@ -36,7 +36,7 @@ public class HibernateFetchingTest { @Test public void testEagerFetching() { FetchingAppView fav = new FetchingAppView(); - Set orderDetalSetEager = fav.eagerLoaded(); + Set orderDetalSetEager = fav.eagerLoaded(); assertTrue(Hibernate.isInitialized(orderDetalSetEager)); } } From 2c18c4880309e342200c62fed03e91057c14eba8 Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Thu, 18 Aug 2016 20:25:12 +0200 Subject: [PATCH 7/8] Refactor Lazy/Eager loading examples --- .../com/baeldung/hibernate/fetching/HibernateFetchingTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java b/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java index c13848f0a5..a650f8eb37 100644 --- a/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java +++ b/spring-hibernate4/src/test/java/com/baeldung/hibernate/fetching/HibernateFetchingTest.java @@ -3,6 +3,7 @@ package com.baeldung.hibernate.fetching; import com.baeldung.hibernate.fetching.model.OrderDetail; import com.baeldung.hibernate.fetching.view.FetchingAppView; import org.hibernate.Hibernate; +import org.junit.Before; import org.junit.Test; import java.util.Set; @@ -14,7 +15,7 @@ public class HibernateFetchingTest { //this loads sample data in the database -// @Before + @Before public void addFecthingTestData(){ FetchingAppView fav = new FetchingAppView(); fav.createTestData(); From 6e5de2fb3676068b60a35c5087fd56af059b1cce Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Thu, 18 Aug 2016 21:43:46 +0200 Subject: [PATCH 8/8] Remove invalid import --- .../com/baeldung/hibernate/fetching/util/HibernateUtil.java | 2 +- .../com/baeldung/hibernate/fetching/view/FetchingAppView.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/util/HibernateUtil.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/util/HibernateUtil.java index 180e216220..bbd7729232 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/util/HibernateUtil.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/util/HibernateUtil.java @@ -11,7 +11,7 @@ public class HibernateUtil { //two config files are there //one with lazy loading enabled //another lazy = false - SessionFactory sf = null; + SessionFactory sf; if ("lazy".equals(fetchMethod)) { sf = new Configuration().configure("fetchingLazy.cfg.xml").buildSessionFactory(); } else { diff --git a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java index 8817bb4809..1a5142c5c2 100644 --- a/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java +++ b/spring-hibernate4/src/main/java/com/baeldung/hibernate/fetching/view/FetchingAppView.java @@ -1,7 +1,6 @@ package com.baeldung.hibernate.fetching.view; import com.baeldung.hibernate.fetching.model.OrderDetail; -import com.baeldung.hibernate.fetching.model.OrderDetailEager; import com.baeldung.hibernate.fetching.model.UserEager; import com.baeldung.hibernate.fetching.model.UserLazy; import com.baeldung.hibernate.fetching.util.HibernateUtil;