lazy loading everywhere

This commit is contained in:
Athou
2013-05-15 16:26:18 +02:00
parent 993bc0a1ac
commit 121daacf94
9 changed files with 40 additions and 29 deletions

View File

@@ -42,8 +42,6 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
criteria.andEquals(FeedEntryStatus_.id.getName(), id);
criteria.innerJoinFetch(FeedEntryStatus_.subscription.getName());
criteria.innerJoinFetch(FeedEntryStatus_.entry.getName());
criteria.andJoinEquals(FeedEntryStatus_.subscription.getName(),
FeedSubscription_.user.getName(), user);
@@ -69,9 +67,9 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
List<Predicate> predicates = Lists.newArrayList();
Join<FeedEntryStatus, FeedSubscription> subJoin = root.join(
FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.join(FeedSubscription_.category, JoinType.LEFT);
Join<FeedEntryStatus, FeedSubscription> subJoin = (Join<FeedEntryStatus, FeedSubscription>) root
.fetch(FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT);
Join<FeedEntryStatus, FeedEntry> entryJoin = (Join<FeedEntryStatus, FeedEntry>) root
.fetch(FeedEntryStatus_.entry, JoinType.LEFT);
@@ -107,9 +105,9 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
List<Predicate> predicates = Lists.newArrayList();
Join<FeedEntryStatus, FeedSubscription> subJoin = root.join(
FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.join(FeedSubscription_.category, JoinType.LEFT);
Join<FeedEntryStatus, FeedSubscription> subJoin = (Join<FeedEntryStatus, FeedSubscription>) root
.fetch(FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT);
Join<FeedEntryStatus, FeedEntry> entryJoin = (Join<FeedEntryStatus, FeedEntry>) root
.fetch(FeedEntryStatus_.entry, JoinType.LEFT);
@@ -141,9 +139,9 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
List<Predicate> predicates = Lists.newArrayList();
Join<FeedEntryStatus, FeedSubscription> subJoin = root.join(
FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.join(FeedSubscription_.category, JoinType.LEFT);
Join<FeedEntryStatus, FeedSubscription> subJoin = (Join<FeedEntryStatus, FeedSubscription>) root
.fetch(FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT);
Join<FeedEntryStatus, FeedEntry> entryJoin = (Join<FeedEntryStatus, FeedEntry>) root
.fetch(FeedEntryStatus_.entry, JoinType.LEFT);
@@ -196,9 +194,9 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
List<Predicate> predicates = Lists.newArrayList();
Join<FeedEntryStatus, FeedSubscription> subJoin = root.join(
FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.join(FeedSubscription_.category, JoinType.LEFT);
Join<FeedEntryStatus, FeedSubscription> subJoin = (Join<FeedEntryStatus, FeedSubscription>) root
.fetch(FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT);
Join<FeedEntryStatus, FeedEntry> entryJoin = (Join<FeedEntryStatus, FeedEntry>) root
.fetch(FeedEntryStatus_.entry, JoinType.LEFT);
@@ -240,9 +238,9 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
List<Predicate> predicates = Lists.newArrayList();
Join<FeedEntryStatus, FeedSubscription> subJoin = root.join(
FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.join(FeedSubscription_.category, JoinType.LEFT);
Join<FeedEntryStatus, FeedSubscription> subJoin = (Join<FeedEntryStatus, FeedSubscription>) root
.fetch(FeedEntryStatus_.subscription, JoinType.LEFT);
subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT);
Join<FeedEntryStatus, FeedEntry> entryJoin = (Join<FeedEntryStatus, FeedEntry>) root
.fetch(FeedEntryStatus_.entry, JoinType.LEFT);

View File

@@ -21,7 +21,6 @@ public class FeedSubscriptionDAO extends GenericDAO<FeedSubscription> {
criteria.andEquals(FeedSubscription_.user.getName(), user);
criteria.andEquals(FeedSubscription_.id.getName(), id);
criteria.leftJoinFetch(FeedSubscription_.feed.getName());
criteria.leftJoinFetch(FeedSubscription_.user.getName());
criteria.leftJoinFetch(FeedSubscription_.category.getName());
return Iterables.getFirst(criteria.getResultList(), null);
}
@@ -44,7 +43,6 @@ public class FeedSubscriptionDAO extends GenericDAO<FeedSubscription> {
criteria.andEquals(FeedSubscription_.user.getName(), user);
criteria.innerJoinFetch(FeedSubscription_.feed.getName());
criteria.innerJoinFetch(FeedSubscription_.user.getName());
criteria.leftJoinFetch(FeedSubscription_.category.getName());
return criteria.getResultList();
}

View File

@@ -10,10 +10,20 @@ import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.model.UserRole_;
import com.google.common.collect.Sets;
import com.uaihebert.factory.EasyCriteriaFactory;
import com.uaihebert.model.EasyCriteria;
@Stateless
public class UserRoleDAO extends GenericDAO<UserRole> {
@Override
public List<UserRole> findAll() {
EasyCriteria<UserRole> criteria = EasyCriteriaFactory
.createQueryCriteria(em, getType());
criteria.leftJoinFetch(UserRole_.user.getName());
return criteria.getResultList();
}
public List<UserRole> findAll(User user) {
return findByField(UserRole_.user, user);
}

View File

@@ -4,6 +4,7 @@ import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
@@ -19,11 +20,11 @@ public class FeedCategory extends AbstractModel {
@Column(length = 128, nullable = false)
private String name;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(nullable = false)
private User user;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
private FeedCategory parent;
@OneToMany(mappedBy = "parent")

View File

@@ -2,6 +2,7 @@ package com.commafeed.backend.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@@ -11,11 +12,11 @@ import javax.persistence.Table;
@SuppressWarnings("serial")
public class FeedEntryStatus extends AbstractModel {
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(nullable = false)
private FeedSubscription subscription;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(nullable = false)
private FeedEntry entry;

View File

@@ -5,6 +5,7 @@ import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
@@ -15,18 +16,18 @@ import javax.persistence.Table;
@SuppressWarnings("serial")
public class FeedSubscription extends AbstractModel {
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(nullable = false)
private User user;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(nullable = false)
private Feed feed;
@Column(length = 128, nullable = false)
private String title;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
private FeedCategory category;
@OneToMany(mappedBy = "subscription", cascade = CascadeType.REMOVE)

View File

@@ -4,6 +4,7 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@@ -17,7 +18,7 @@ public class UserRole extends AbstractModel {
USER, ADMIN, NONE
}
@OneToOne
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false)
private User user;

View File

@@ -4,6 +4,7 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.OneToOne;
@@ -26,7 +27,7 @@ public class UserSettings extends AbstractModel {
title, expanded
}
@OneToOne
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false)
private User user;