hibernate tweaks

This commit is contained in:
Athou
2013-06-06 09:54:17 +02:00
parent c907abbf62
commit be6db080fd
18 changed files with 40 additions and 56 deletions

View File

@@ -269,26 +269,26 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
public void markFeedEntries(User user, Feed feed, Date olderThan) {
List<FeedEntryStatus> statuses = findByFeed(feed, user, true,
ReadingOrder.desc, false);
update(markList(statuses, olderThan));
saveOrUpdate(markList(statuses, olderThan));
}
public void markCategoryEntries(User user, List<FeedCategory> categories,
Date olderThan) {
List<FeedEntryStatus> statuses = findByCategories(categories, user,
true, ReadingOrder.desc, false);
update(markList(statuses, olderThan));
saveOrUpdate(markList(statuses, olderThan));
}
public void markStarredEntries(User user, Date olderThan) {
List<FeedEntryStatus> statuses = findStarred(user, ReadingOrder.desc,
false);
update(markList(statuses, olderThan));
saveOrUpdate(markList(statuses, olderThan));
}
public void markAllEntries(User user, Date olderThan) {
List<FeedEntryStatus> statuses = findAll(user, true, ReadingOrder.desc,
false);
update(markList(statuses, olderThan));
saveOrUpdate(markList(statuses, olderThan));
}
private List<FeedEntryStatus> markList(List<FeedEntryStatus> statuses,

View File

@@ -34,44 +34,24 @@ public abstract class GenericDAO<T extends AbstractModel> {
builder = em.getCriteriaBuilder();
}
public void save(T object) {
em.persist(object);
}
public void save(Collection<T> objects) {
for (Object object : objects) {
em.persist(object);
}
}
public void update(Collection<T> objects) {
for (Object object : objects) {
em.merge(object);
}
}
public void update(T... objects) {
update(Arrays.asList(objects));
}
public void saveOrUpdate(Collection<? extends AbstractModel> models) {
int i = 0;
for (AbstractModel model : models) {
if (model.getId() == null) {
em.persist(model);
} else {
em.merge(model);
}
if (i % 20 == 0) {
em.flush();
}
i++;
}
}
public void saveOrUpdate(AbstractModel... models) {
for (AbstractModel model : models) {
if (model.getId() == null) {
em.persist(model);
} else {
em.merge(model);
}
}
saveOrUpdate(Arrays.asList(models));
}
public void delete(T object) {

View File

@@ -94,7 +94,7 @@ public class FeedRefreshTaskGiver {
map.put(f.getId(), f);
}
feedDAO.update(map.values());
feedDAO.saveOrUpdate(map.values());
}
public void giveBack(Feed feed) {

View File

@@ -64,7 +64,7 @@ public class OPMLImporter {
}
category.setParent(parent);
category.setUser(user);
feedCategoryDAO.save(category);
feedCategoryDAO.saveOrUpdate(category);
}
List<Outline> children = outline.getChildren();

View File

@@ -72,7 +72,7 @@ public class SubscriptionHandler {
&& StringUtils.contains(message, pushpressError)) {
String[] tokens = message.split(" ");
feed.setPushTopic(tokens[tokens.length - 1]);
feedDAO.update(feed);
feedDAO.saveOrUpdate(feed);
log.debug("handled pushpress subfeed {} : {}", topic,
feed.getPushTopic());
} else {

View File

@@ -17,7 +17,7 @@ public class FeedEntryService {
FeedEntryStatus status = feedEntryStatusDAO.findById(user, entryId);
if (status != null) {
status.setRead(read);
feedEntryStatusDAO.update(status);
feedEntryStatusDAO.saveOrUpdate(status);
}
}
@@ -25,7 +25,7 @@ public class FeedEntryService {
FeedEntryStatus status = feedEntryStatusDAO.findById(user, entryId);
if (status != null) {
status.setStarred(starred);
feedEntryStatusDAO.update(status);
feedEntryStatusDAO.saveOrUpdate(status);
}
}
}

View File

@@ -23,7 +23,7 @@ public class FeedService {
feed = new Feed();
feed.setUrl(url);
feed.setUrlHash(DigestUtils.sha1Hex(url));
feedDAO.save(feed);
feedDAO.saveOrUpdate(feed);
}
return feed;
}

View File

@@ -86,7 +86,7 @@ public class FeedSubscriptionService {
status.setSubscription(sub);
statuses.add(status);
}
feedEntryStatusDAO.save(statuses);
feedEntryStatusDAO.saveOrUpdate(statuses);
}
taskGiver.add(feed);
return feed;

View File

@@ -56,7 +56,7 @@ public class UserService {
user.getPassword(), user.getSalt());
if (authenticated) {
user.setLastLogin(Calendar.getInstance().getTime());
userDAO.update(user);
userDAO.saveOrUpdate(user);
return user;
}
}
@@ -85,7 +85,7 @@ public class UserService {
for (Role role : roles) {
user.getRoles().add(new UserRole(user, role));
}
userDAO.save(user);
userDAO.saveOrUpdate(user);
return user;
}