forked from Archives/Athou_commafeed
remove deprecated usage of saveOrUpdate in preparation of hibernate 7
This commit is contained in:
@@ -5,7 +5,6 @@ import java.util.Collection;
|
|||||||
|
|
||||||
import jakarta.persistence.EntityManager;
|
import jakarta.persistence.EntityManager;
|
||||||
|
|
||||||
import org.hibernate.Session;
|
|
||||||
import org.hibernate.jpa.SpecHints;
|
import org.hibernate.jpa.SpecHints;
|
||||||
|
|
||||||
import com.commafeed.backend.model.AbstractModel;
|
import com.commafeed.backend.model.AbstractModel;
|
||||||
@@ -35,15 +34,6 @@ public abstract class GenericDAO<T extends AbstractModel> {
|
|||||||
return new JPADeleteClause(entityManager, entityPath);
|
return new JPADeleteClause(entityManager, entityPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public void saveOrUpdate(T model) {
|
|
||||||
entityManager.unwrap(Session.class).saveOrUpdate(model);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void saveOrUpdate(Collection<T> models) {
|
|
||||||
models.forEach(this::saveOrUpdate);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void persist(T model) {
|
public void persist(T model) {
|
||||||
entityManager.persist(model);
|
entityManager.persist(model);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class OPMLImporter {
|
|||||||
category.setParent(parent);
|
category.setParent(parent);
|
||||||
category.setUser(user);
|
category.setUser(user);
|
||||||
category.setPosition(position);
|
category.setPosition(position);
|
||||||
feedCategoryDAO.saveOrUpdate(category);
|
feedCategoryDAO.persist(category);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < children.size(); i++) {
|
for (int i = 0; i < children.size(); i++) {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class FeedEntryContentService {
|
|||||||
if (existing.isPresent()) {
|
if (existing.isPresent()) {
|
||||||
return existing.get();
|
return existing.get();
|
||||||
} else {
|
} else {
|
||||||
feedEntryContentDAO.saveOrUpdate(entryContent);
|
feedEntryContentDAO.persist(entryContent);
|
||||||
return entryContent;
|
return entryContent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class FeedEntryService {
|
|||||||
feedEntry.setFeed(feed);
|
feedEntry.setFeed(feed);
|
||||||
feedEntry.setContent(feedEntryContentService.findOrCreate(entry.content(), feed.getLink()));
|
feedEntry.setContent(feedEntryContentService.findOrCreate(entry.content(), feed.getLink()));
|
||||||
|
|
||||||
feedEntryDAO.saveOrUpdate(feedEntry);
|
feedEntryDAO.persist(feedEntry);
|
||||||
return feedEntry;
|
return feedEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ public class FeedEntryService {
|
|||||||
if (!matches) {
|
if (!matches) {
|
||||||
FeedEntryStatus status = new FeedEntryStatus(sub.getUser(), sub, entry);
|
FeedEntryStatus status = new FeedEntryStatus(sub.getUser(), sub, entry);
|
||||||
status.setRead(true);
|
status.setRead(true);
|
||||||
feedEntryStatusDAO.saveOrUpdate(status);
|
feedEntryStatusDAO.persist(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
return matches;
|
return matches;
|
||||||
@@ -83,7 +83,7 @@ public class FeedEntryService {
|
|||||||
FeedEntryStatus status = feedEntryStatusDAO.getStatus(user, sub, entry);
|
FeedEntryStatus status = feedEntryStatusDAO.getStatus(user, sub, entry);
|
||||||
if (status.isMarkable()) {
|
if (status.isMarkable()) {
|
||||||
status.setRead(read);
|
status.setRead(read);
|
||||||
feedEntryStatusDAO.saveOrUpdate(status);
|
feedEntryStatusDAO.merge(status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@ public class FeedEntryService {
|
|||||||
|
|
||||||
FeedEntryStatus status = feedEntryStatusDAO.getStatus(user, sub, entry);
|
FeedEntryStatus status = feedEntryStatusDAO.getStatus(user, sub, entry);
|
||||||
status.setStarred(starred);
|
status.setStarred(starred);
|
||||||
feedEntryStatusDAO.saveOrUpdate(status);
|
feedEntryStatusDAO.merge(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void markSubscriptionEntries(User user, List<FeedSubscription> subscriptions, Instant olderThan, Instant insertedBefore,
|
public void markSubscriptionEntries(User user, List<FeedSubscription> subscriptions, Instant olderThan, Instant insertedBefore,
|
||||||
@@ -125,7 +125,9 @@ public class FeedEntryService {
|
|||||||
return insertedBefore == null || insertedDate == null || insertedDate.isBefore(insertedBefore);
|
return insertedBefore == null || insertedDate == null || insertedDate.isBefore(insertedBefore);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
statusesToMark.forEach(s -> s.setRead(true));
|
statusesToMark.forEach(s -> {
|
||||||
feedEntryStatusDAO.saveOrUpdate(statusesToMark);
|
s.setRead(true);
|
||||||
|
feedEntryStatusDAO.merge(s);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public class FeedEntryTagService {
|
|||||||
.toList();
|
.toList();
|
||||||
List<FeedEntryTag> removeList = existingTags.stream().filter(tag -> !tagNames.contains(tag.getName())).toList();
|
List<FeedEntryTag> removeList = existingTags.stream().filter(tag -> !tagNames.contains(tag.getName())).toList();
|
||||||
|
|
||||||
feedEntryTagDAO.saveOrUpdate(addList);
|
addList.forEach(feedEntryTagDAO::persist);
|
||||||
feedEntryTagDAO.delete(removeList);
|
feedEntryTagDAO.delete(removeList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ public class FeedSubscriptionService {
|
|||||||
// upgrade feed to https if it was using http
|
// upgrade feed to https if it was using http
|
||||||
if (FeedUtils.isHttp(feed.getUrl()) && FeedUtils.isHttps(url)) {
|
if (FeedUtils.isHttp(feed.getUrl()) && FeedUtils.isHttps(url)) {
|
||||||
feed.setUrl(url);
|
feed.setUrl(url);
|
||||||
feedDAO.saveOrUpdate(feed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FeedSubscription sub = feedSubscriptionDAO.findByFeed(user, feed);
|
FeedSubscription sub = feedSubscriptionDAO.findByFeed(user, feed);
|
||||||
@@ -84,9 +83,7 @@ public class FeedSubscriptionService {
|
|||||||
sub.setCategory(category);
|
sub.setCategory(category);
|
||||||
sub.setPosition(position);
|
sub.setPosition(position);
|
||||||
sub.setTitle(FeedUtils.truncate(title, 128));
|
sub.setTitle(FeedUtils.truncate(title, 128));
|
||||||
feedSubscriptionDAO.saveOrUpdate(sub);
|
return feedSubscriptionDAO.merge(sub).getId();
|
||||||
|
|
||||||
return sub.getId();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean unsubscribe(User user, Long subId) {
|
public boolean unsubscribe(User user, Long subId) {
|
||||||
|
|||||||
@@ -132,9 +132,9 @@ public class UserService {
|
|||||||
user.setCreated(Instant.now());
|
user.setCreated(Instant.now());
|
||||||
user.setSalt(salt);
|
user.setSalt(salt);
|
||||||
user.setPassword(encryptionService.getEncryptedPassword(password, salt));
|
user.setPassword(encryptionService.getEncryptedPassword(password, salt));
|
||||||
userDAO.saveOrUpdate(user);
|
userDAO.persist(user);
|
||||||
for (Role role : roles) {
|
for (Role role : roles) {
|
||||||
userRoleDAO.saveOrUpdate(new UserRole(user, role));
|
userRoleDAO.persist(new UserRole(user, role));
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ public class PostLoginActivities {
|
|||||||
Instant lastLogin = user.getLastLogin();
|
Instant lastLogin = user.getLastLogin();
|
||||||
if (lastLogin == null || ChronoUnit.MINUTES.between(lastLogin, now) >= 30) {
|
if (lastLogin == null || ChronoUnit.MINUTES.between(lastLogin, now) >= 30) {
|
||||||
user.setLastLogin(now);
|
user.setLastLogin(now);
|
||||||
unitOfWork.run(() -> userDAO.saveOrUpdate(user));
|
unitOfWork.run(() -> userDAO.merge(user));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,11 +97,10 @@ public class AdminREST {
|
|||||||
}
|
}
|
||||||
u.setEmail(req.getEmail());
|
u.setEmail(req.getEmail());
|
||||||
u.setDisabled(!req.isEnabled());
|
u.setDisabled(!req.isEnabled());
|
||||||
userDAO.saveOrUpdate(u);
|
|
||||||
|
|
||||||
Set<Role> roles = userRoleDAO.findRoles(u);
|
Set<Role> roles = userRoleDAO.findRoles(u);
|
||||||
if (req.isAdmin() && !roles.contains(Role.ADMIN)) {
|
if (req.isAdmin() && !roles.contains(Role.ADMIN)) {
|
||||||
userRoleDAO.saveOrUpdate(new UserRole(u, Role.ADMIN));
|
userRoleDAO.persist(new UserRole(u, Role.ADMIN));
|
||||||
} else if (!req.isAdmin() && roles.contains(Role.ADMIN)) {
|
} else if (!req.isAdmin() && roles.contains(Role.ADMIN)) {
|
||||||
if (CommaFeedApplication.USERNAME_ADMIN.equals(u.getName())) {
|
if (CommaFeedApplication.USERNAME_ADMIN.equals(u.getName())) {
|
||||||
return Response.status(Status.FORBIDDEN).entity("You cannot remove the admin role from the admin user.").build();
|
return Response.status(Status.FORBIDDEN).entity("You cannot remove the admin role from the admin user.").build();
|
||||||
|
|||||||
@@ -291,7 +291,7 @@ public class CategoryREST {
|
|||||||
parent.setId(Long.valueOf(parentId));
|
parent.setId(Long.valueOf(parentId));
|
||||||
cat.setParent(parent);
|
cat.setParent(parent);
|
||||||
}
|
}
|
||||||
feedCategoryDAO.saveOrUpdate(cat);
|
feedCategoryDAO.persist(cat);
|
||||||
return Response.ok(cat.getId()).build();
|
return Response.ok(cat.getId()).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -311,14 +311,13 @@ public class CategoryREST {
|
|||||||
for (FeedSubscription sub : subs) {
|
for (FeedSubscription sub : subs) {
|
||||||
sub.setCategory(null);
|
sub.setCategory(null);
|
||||||
}
|
}
|
||||||
feedSubscriptionDAO.saveOrUpdate(subs);
|
|
||||||
List<FeedCategory> categories = feedCategoryDAO.findAllChildrenCategories(user, cat);
|
List<FeedCategory> categories = feedCategoryDAO.findAllChildrenCategories(user, cat);
|
||||||
for (FeedCategory child : categories) {
|
for (FeedCategory child : categories) {
|
||||||
if (!child.getId().equals(cat.getId()) && child.getParent().getId().equals(cat.getId())) {
|
if (!child.getId().equals(cat.getId()) && child.getParent().getId().equals(cat.getId())) {
|
||||||
child.setParent(null);
|
child.setParent(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
feedCategoryDAO.saveOrUpdate(categories);
|
|
||||||
|
|
||||||
feedCategoryDAO.delete(cat);
|
feedCategoryDAO.delete(cat);
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
@@ -330,7 +329,7 @@ public class CategoryREST {
|
|||||||
@POST
|
@POST
|
||||||
@Path("/modify")
|
@Path("/modify")
|
||||||
@Transactional
|
@Transactional
|
||||||
@Operation(summary = "Rename a category", description = "Rename an existing feed category")
|
@Operation(summary = "Modify a category", description = "Modify an existing feed category")
|
||||||
public Response modifyCategory(@Valid @Parameter(required = true) CategoryModificationRequest req) {
|
public Response modifyCategory(@Valid @Parameter(required = true) CategoryModificationRequest req) {
|
||||||
Preconditions.checkNotNull(req);
|
Preconditions.checkNotNull(req);
|
||||||
Preconditions.checkNotNull(req.getId());
|
Preconditions.checkNotNull(req.getId());
|
||||||
@@ -367,12 +366,8 @@ public class CategoryREST {
|
|||||||
for (int i = 0; i < categories.size(); i++) {
|
for (int i = 0; i < categories.size(); i++) {
|
||||||
categories.get(i).setPosition(i);
|
categories.get(i).setPosition(i);
|
||||||
}
|
}
|
||||||
feedCategoryDAO.saveOrUpdate(categories);
|
|
||||||
} else {
|
|
||||||
feedCategoryDAO.saveOrUpdate(category);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
feedCategoryDAO.saveOrUpdate(category);
|
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -390,7 +385,7 @@ public class CategoryREST {
|
|||||||
return Response.status(Status.NOT_FOUND).build();
|
return Response.status(Status.NOT_FOUND).build();
|
||||||
}
|
}
|
||||||
category.setCollapsed(req.isCollapse());
|
category.setCollapsed(req.isCollapse());
|
||||||
feedCategoryDAO.saveOrUpdate(category);
|
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -460,10 +460,8 @@ public class FeedREST {
|
|||||||
for (int i = 0; i < subs.size(); i++) {
|
for (int i = 0; i < subs.size(); i++) {
|
||||||
subs.get(i).setPosition(i);
|
subs.get(i).setPosition(i);
|
||||||
}
|
}
|
||||||
feedSubscriptionDAO.saveOrUpdate(subs);
|
|
||||||
} else {
|
|
||||||
feedSubscriptionDAO.saveOrUpdate(subscription);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ public class UserREST {
|
|||||||
s.setInstapaper(settings.getSharingSettings().isInstapaper());
|
s.setInstapaper(settings.getSharingSettings().isInstapaper());
|
||||||
s.setBuffer(settings.getSharingSettings().isBuffer());
|
s.setBuffer(settings.getSharingSettings().isBuffer());
|
||||||
|
|
||||||
userSettingsDAO.saveOrUpdate(s);
|
userSettingsDAO.merge(s);
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -261,7 +261,7 @@ public class UserREST {
|
|||||||
user.setApiKey(userService.generateApiKey(user));
|
user.setApiKey(userService.generateApiKey(user));
|
||||||
}
|
}
|
||||||
|
|
||||||
userDAO.saveOrUpdate(user);
|
userDAO.merge(user);
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -297,7 +297,7 @@ public class UserREST {
|
|||||||
try {
|
try {
|
||||||
user.setRecoverPasswordToken(Digests.sha1Hex(UUID.randomUUID().toString()));
|
user.setRecoverPasswordToken(Digests.sha1Hex(UUID.randomUUID().toString()));
|
||||||
user.setRecoverPasswordTokenDate(Instant.now());
|
user.setRecoverPasswordTokenDate(Instant.now());
|
||||||
userDAO.saveOrUpdate(user);
|
|
||||||
mailService.sendMail(user, "Password recovery", buildEmailContent(user));
|
mailService.sendMail(user, "Password recovery", buildEmailContent(user));
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -351,7 +351,6 @@ public class UserREST {
|
|||||||
}
|
}
|
||||||
user.setRecoverPasswordToken(null);
|
user.setRecoverPasswordToken(null);
|
||||||
user.setRecoverPasswordTokenDate(null);
|
user.setRecoverPasswordTokenDate(null);
|
||||||
userDAO.saveOrUpdate(user);
|
|
||||||
|
|
||||||
String message = "Your new password is: " + passwd;
|
String message = "Your new password is: " + passwd;
|
||||||
message += "<br />";
|
message += "<br />";
|
||||||
|
|||||||
Reference in New Issue
Block a user