I am trying to get the orders by using the getOrders(String domain) function from domain DAO this is the code:
Set<Order> orders;
orders = domainService.getOrders('google.com');
but I keep getting this error
failed to lazily initialize a collection of role: com.latinon.reportator.model.Domain.ordersDomain, could not initialize proxy - no Session
which one is the correct way to set the lazy type without getting the error
pojos
domain
@Entity
@Table(name="Domain")
public class Domain {
private Set<Order> ordersDomain = new HashSet<Order>(0);
private Set<User> userDomain = new HashSet<User>(0);
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="Order_Domain", joinColumns={
@JoinColumn(name="Order_Domain_Domain_id")
},inverseJoinColumns={
@JoinColumn(name="Order_Domain_Order_id", nullable=false,updatable=false)
})
public Set<Order> getOrdersDomain() {
return ordersDomain;
}
public void setOrdersDomain(Set<Order> ordersDomain) {
this.ordersDomain = ordersDomain;
}
}
order
@Entity
@Table(name="Order")
public class Order {
private Set<Domain> orderDomains = new HashSet<Domain>(0);
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="Order_Domain", joinColumns={
@JoinColumn(name="Order_Domain_Order_id",nullable=false,updatable=false)
}, inverseJoinColumns={
@JoinColumn(name="Order_Domain_Domain_id",nullable=false,updatable=false)
})
public Set<Domain> getOrderDomains() {
return orderDomains;
}
public Set<Domain> getOrderDomains() {
return orderDomains;
}
}
DAOs
Domain
public interface DomainDAO {
public void saveDomain(Domain domain);
public void updateDomain(Domain domain);
public Domain getDomainById(Integer id);
public Domain getDomain(String domain);
public void deleteDomain(Integer id);
public Set<Order> getOrders(String domain);
}
Order
public interface OrderDAO {
public void saveOrder(Order order);
public void updateOrder(Order order);
public Order getOrderById(Integer id);
public void deleteOrder(Integer id);
public Order getOrderByAdUnit(String adUnitId);
}
servicios
domain
public interface DomainService {
public void saveDomain(Domain domain);
public void updateDomain(Domain domain);
public Domain getDomainById(Integer id);
public void deleteDomain(Integer id);
public Domain getDomain(String domain);
public Set<Order> getOrders(String domain);
}
domain service implementation
@Service
public class DomainServiceImpl implements DomainService {
private DomainDAO domainDao;
public DomainDAO getDomainDao() {
return domainDao;
}
public void setDomainDao(DomainDAO domainDao) {
this.domainDao = domainDao;
}
public DomainServiceImpl() {
// TODO Auto-generated constructor stub
}
@Transactional
public Set<Order> getOrders(String domain) {
Domain domainAux = this.domainDao.getDomain(domain);
return domainAux.getOrdersDomain();
}
}
order
public interface OrderService {
public void saveOrder(Order order);
public void updateOrder(Order order);
public Order getOrderById(Integer id);
public void deleteOrder(Integer id);
public Order getOrderByAdUnit(String adUnitId);
}
order service implementation
@Service
public class OrderServiceImpl implements OrderService {
private OrderDAO orderDAO;
public OrderDAO getOrderDAO() {
return orderDAO;
}
public void setOrderDAO(OrderDAO orderDAO) {
this.orderDAO = orderDAO;
}
public OrderServiceImpl() {
// TODO Auto-generated constructor stub
}
@Transactional
public Order getOrderByAdUnit(String adUnitId) {
return this.orderDAO.getOrderByAdUnit(adUnitId);
}
}