diff --git a/README.md b/README.md index 1375d7f73..b66bb6474 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ An example implementation of this bot can be seen [here](https://github.com/Shel * [Spring boot](https://github.com/spring-projects/spring-boot) is used as a framework to create standalone application in Java with Java EE methods. (including Dependency injection and more) * [Hibernate](https://github.com/hibernate/hibernate-orm) is used as a reference implementation of JPA. * [Freemarker](https://github.com/apache/freemarker) is used as a templating engine. This is used to provide internationalization for user facing text and enable dynamic embed configuration. -* [Ehcache](https://github.com/ehcache/ehcache3) is used as a caching implementation for the database and other caches. +* [Ehcache](https://github.com/ehcache/ehcache3) is used as a caching implementation. * [Lombok](https://github.com/rzwitserloot/lombok) is used as a framework in order to speed up creation of container classes and builders. * [Quartz](https://github.com/quartz-scheduler/quartz) is used as a scheduling framework in order to provide functionalities which either require a delayed or cronjob behaviour. * [Docker](https://github.com/docker) is used to package the application into a container and [Docker Compose](https://github.com/docker/compose) is used to connect the required containers together. diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/command/AssignableRoleModule.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/command/AssignableRoleModule.java index 1df2e0557..6f7fcca3e 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/command/AssignableRoleModule.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/command/AssignableRoleModule.java @@ -6,7 +6,7 @@ import org.springframework.stereotype.Component; @Component public class AssignableRoleModule implements ModuleInterface { - public static final String ASSIGNABLE_ROLES = "assignableRoles"; + public static final String ASSIGNABLE_ROLES = "assignableRole"; @Override public ModuleInfo getInfo() { diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/listener/AssignablePostReactionAdded.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/listener/AssignablePostReactionAdded.java index 8ca60323f..e9197238f 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/listener/AssignablePostReactionAdded.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/listener/AssignablePostReactionAdded.java @@ -19,6 +19,7 @@ import dev.sheldan.abstracto.core.models.cache.CachedReaction; import dev.sheldan.abstracto.core.models.cache.CachedReactions; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import dev.sheldan.abstracto.core.service.EmoteService; +import dev.sheldan.abstracto.core.service.MemberService; import dev.sheldan.abstracto.core.service.ReactionService; import dev.sheldan.abstracto.core.service.management.UserInServerManagementService; import lombok.extern.slf4j.Slf4j; @@ -65,6 +66,9 @@ public class AssignablePostReactionAdded implements AsyncReactionAddedListener { @Autowired private ReactionService reactionService; + @Autowired + private MemberService memberService; + @Override public void executeReactionAdded(CachedMessage message, CachedReactions cachedReaction, ServerUser serverUser) { Optional messageOptional = service.findByMessageIdOptional(message.getMessageId()); @@ -113,12 +117,15 @@ public class AssignablePostReactionAdded implements AsyncReactionAddedListener { } if(!validReaction) { log.trace("Reaction was not found in the configuration of assignable role place {}, removing reaction.", assignableRolePlace.getId()); - futures.add(reactionService.removeReactionFromMessage(cachedReaction, message)); + futures.add(reactionService.removeReaction(message, cachedReaction.getEmote(), serverUser)); } Long assignableRolePlaceId = assignableRolePlace.getId(); CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).thenAccept(aVoid -> self.updateStoredAssignableRoles(assignableRolePlaceId, serverUser, cachedReaction) - ); + ).exceptionally(throwable -> { + log.error("Failed to add role or remove emote for assignable role place {}.", assignableRolePlaceId, throwable); + return null; + }); } @Transactional diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRolePlacePostRepository.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRolePlacePostRepository.java index 59a1df79b..82edba12f 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRolePlacePostRepository.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRolePlacePostRepository.java @@ -3,17 +3,14 @@ package dev.sheldan.abstracto.assignableroles.repository; import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlacePost; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository public interface AssignableRolePlacePostRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); } diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRolePlaceRepository.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRolePlaceRepository.java index f35f5fcdc..7a915f3c8 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRolePlaceRepository.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRolePlaceRepository.java @@ -4,28 +4,22 @@ import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlace import dev.sheldan.abstracto.core.models.database.AServer; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @Repository public interface AssignableRolePlaceRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByServerAndKey(AServer server, String key); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByServerAndKey(AServer server, String key); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByServer(AServer server); @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); } diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRoleRepository.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRoleRepository.java index bd6666f19..34543ba01 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRoleRepository.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignableRoleRepository.java @@ -3,17 +3,14 @@ package dev.sheldan.abstracto.assignableroles.repository; import dev.sheldan.abstracto.assignableroles.models.database.AssignableRole; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository public interface AssignableRoleRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); } diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignedRoleUserRepository.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignedRoleUserRepository.java index 99ac3d7a3..3d898dc8a 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignedRoleUserRepository.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/repository/AssignedRoleUserRepository.java @@ -3,21 +3,17 @@ package dev.sheldan.abstracto.assignableroles.repository; import dev.sheldan.abstracto.assignableroles.models.database.AssignedRoleUser; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository public interface AssignedRoleUserRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsById(@NonNull Long aLong); } diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/AssignableRolePlaceServiceBean.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/AssignableRolePlaceServiceBean.java index b92d7b120..642488cca 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/AssignableRolePlaceServiceBean.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/AssignableRolePlaceServiceBean.java @@ -9,10 +9,7 @@ import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlace import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlacePost; import dev.sheldan.abstracto.assignableroles.models.database.AssignedRoleUser; import dev.sheldan.abstracto.assignableroles.models.templates.*; -import dev.sheldan.abstracto.assignableroles.service.management.AssignableRoleManagementService; -import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlaceManagementService; -import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementService; -import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementServiceBean; +import dev.sheldan.abstracto.assignableroles.service.management.*; import dev.sheldan.abstracto.core.command.exception.AbstractoTemplatedException; import dev.sheldan.abstracto.core.command.exception.CommandParameterKeyValueWrongTypeException; import dev.sheldan.abstracto.core.exception.ChannelNotInGuildException; @@ -124,11 +121,10 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic if(!hasAssignableRolePlaceEmote(server, placeName, emote.getFakeEmote())) { throw new AbstractoTemplatedException("Place does not have emote assigned.", "assignable_role_place_position_exists_exception"); } - Integer emoteId = emote.getFakeEmote().getId(); AssignableRolePlace assignableRolePlace = rolePlaceManagementService.findByServerAndKey(server, placeName); - log.info("Setting emote {} to position {} in assignable role place {} in server {}.", - emoteId, position, assignableRolePlace.getId(), assignableRolePlace.getServer().getId()); - Optional emoteOptional = assignableRolePlace.getAssignableRoles().stream().filter(role -> role.getEmote().getId().equals(emoteId)).findFirst(); + log.info("Setting emote to position {} in assignable role place {} in server {}.", + position, assignableRolePlace.getId(), assignableRolePlace.getServer().getId()); + Optional emoteOptional = assignableRolePlace.getAssignableRoles().stream().filter(role -> emoteService.compareAEmote(emote.getFakeEmote(), role.getEmote())).findFirst(); if(emoteOptional.isPresent()) { AssignableRole toChange = emoteOptional.get(); toChange.setPosition(position); @@ -290,6 +286,8 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic Optional roleToRemoveOptional = assignableRolePlace.getAssignableRoles().stream().filter(role -> role.getId().equals(assignableRoleId)).findAny(); roleToRemoveOptional.ifPresent(assignableRole -> { assignableRolePlace.getAssignableRoles().remove(assignableRole); + assignableRole.getAssignedUsers().forEach(assignedRoleUser -> assignedRoleUser.getRoles().remove(assignableRole)); + assignableRole.getAssignedUsers().clear(); assignableRole.setAssignablePlace(null); }); } @@ -319,6 +317,7 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic AssignableRolePlace assignableRolePlace = rolePlaceManagementService.findByServerAndKey(server, name); log.info("Setting up assignable role place {} in server {} towards channel {}.", assignableRolePlace.getId(), server.getId(), assignableRolePlace.getChannel().getId()); List> oldPostDeletionFutures = deleteExistingMessagePostsForPlace(assignableRolePlace); + assignableRolePlace.getMessagePosts().forEach(assignableRolePlacePost -> assignableRolePlacePost.setAssignablePlace(null)); assignableRolePlace.getMessagePosts().clear(); assignableRolePlace.getAssignableRoles().forEach(assignableRole -> assignableRole.setAssignableRolePlacePost(null) @@ -765,7 +764,11 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic reactionFutures.add(firstMessageFuture); } return CompletableFuture.allOf(reactionFutures.toArray(new CompletableFuture[0])).thenCompose(aVoid -> { - self.storeCreatedAssignableRolePlacePosts(assignablePlaceId, serverId, assignablePlacePostsMessageFutures); + try { + self.storeCreatedAssignableRolePlacePosts(assignablePlaceId, serverId, assignablePlacePostsMessageFutures); + } catch (Exception e) { + log.error("Failed to persist assignable role place posts. ", e); + } return CompletableFuture.completedFuture(null); }); } @@ -778,21 +781,16 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic int usedEmotes = 0; for (int i = 0; i < futures.size(); i++) { CompletableFuture messageCompletableFuture = futures.get(i); - try { - Message message = messageCompletableFuture.get(); - Message sentMessage = messageCompletableFuture.get(); - // this uses the actual embed count as a limit, so this relies on fields to be used for description, if this changes, this needs to be changed - MessageEmbed embed = sentMessage.getEmbeds().get(0); - log.trace("Storing post {} with {} fields.", message.getId(), embed.getFields().size()); - List firstRoles = rolesToAdd.subList(usedEmotes, usedEmotes + embed.getFields().size()); - usedEmotes += embed.getFields().size(); - AssignableRolePlacePost post = assignableRolePlacePostManagementServiceBean.createAssignableRolePlacePost(updatedPlace, message.getIdLong()); - firstRoles.forEach(assignableRole -> - assignableRole.setAssignableRolePlacePost(post) - ); - } catch (Exception e) { - log.error("Failed to get future.", e); - } + Message message = messageCompletableFuture.join(); + // this uses the actual embed count as a limit, so this relies on fields to be used for description, if this changes, this needs to be changed + MessageEmbed embed = message.getEmbeds().get(0); + log.trace("Storing post {} with {} fields.", message.getId(), embed.getFields().size()); + List firstRoles = rolesToAdd.subList(usedEmotes, usedEmotes + embed.getFields().size()); + usedEmotes += embed.getFields().size(); + AssignableRolePlacePost post = assignableRolePlacePostManagementServiceBean.createAssignableRolePlacePost(updatedPlace, message.getIdLong()); + firstRoles.forEach(assignableRole -> + assignableRole.setAssignableRolePlacePost(post) + ); } } diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignableRolePlacePostManagementServiceBean.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignableRolePlacePostManagementServiceBean.java index 60c9ee75a..4836c8c0d 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignableRolePlacePostManagementServiceBean.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignableRolePlacePostManagementServiceBean.java @@ -34,7 +34,7 @@ public class AssignableRolePlacePostManagementServiceBean implements AssignableR .server(updatedPlace.getServer()) .assignablePlace(updatedPlace) .build(); - repository.save(post); + updatedPlace.getMessagePosts().add(post); return post; } diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignedRoleUserManagementServiceBean.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignedRoleUserManagementServiceBean.java index 6c9d1e5d4..8b87ec2d1 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignedRoleUserManagementServiceBean.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-impl/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignedRoleUserManagementServiceBean.java @@ -40,6 +40,10 @@ public class AssignedRoleUserManagementServiceBean implements AssignedRoleUserMa assignableRole.getId(), aUserInAServer.getUserReference().getId(), aUserInAServer.getServerReference().getId(), assignableRole.getAssignablePlace().getId()); AssignedRoleUser user = findByUserInServer(aUserInAServer); + removeAssignedRoleFromUser(assignableRole, user); + } + + public void removeAssignedRoleFromUser(AssignableRole assignableRole, AssignedRoleUser user) { assignableRole.getAssignedUsers().remove(user); user.getRoles().remove(assignableRole); } diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRole.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRole.java index 64e7a0d22..052304edc 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRole.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRole.java @@ -4,7 +4,6 @@ import dev.sheldan.abstracto.core.models.database.AEmote; import dev.sheldan.abstracto.core.models.database.ARole; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -20,8 +19,6 @@ import java.util.List; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AssignableRole implements Serializable { @Id @@ -50,7 +47,6 @@ public class AssignableRole implements Serializable { @ManyToMany(mappedBy = "roles") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List assignedUsers = new ArrayList<>(); @Column(name = "description") diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRolePlace.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRolePlace.java index 366724eff..a1c7771a4 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRolePlace.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRolePlace.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.assignableroles.models.database; import dev.sheldan.abstracto.core.models.database.AChannel; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -19,8 +18,6 @@ import java.util.List; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AssignableRolePlace implements Serializable { public static final Long ASSIGNABLE_PLACE_NAME_LIMIT = 255L; @@ -49,7 +46,6 @@ public class AssignableRolePlace implements Serializable { mappedBy = "assignablePlace" ) @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List messagePosts = new ArrayList<>(); @OneToMany( @@ -59,7 +55,6 @@ public class AssignableRolePlace implements Serializable { mappedBy = "assignablePlace" ) @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List assignableRoles = new ArrayList<>(); @Column(name = "text") diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRolePlacePost.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRolePlacePost.java index d9d676eb8..cc457e269 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRolePlacePost.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignableRolePlacePost.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.assignableroles.models.database; import dev.sheldan.abstracto.core.models.database.AChannel; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -19,8 +18,6 @@ import java.util.List; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AssignableRolePlacePost implements Serializable { @Id @@ -50,7 +47,6 @@ public class AssignableRolePlacePost implements Serializable { cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "assignableRolePlacePost") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List assignableRoles = new ArrayList<>(); } diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignedRoleUser.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignedRoleUser.java index d76caa00b..b3523415c 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignedRoleUser.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/models/database/AssignedRoleUser.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.assignableroles.models.database; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -18,8 +17,6 @@ import java.util.List; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AssignedRoleUser implements Serializable { @Id @@ -35,7 +32,6 @@ public class AssignedRoleUser implements Serializable { name = "assigned_role_in_user", joinColumns = @JoinColumn(name = "user_in_server_id"), inverseJoinColumns = @JoinColumn(name = "assigned_role_id")) - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @Builder.Default private List roles = new ArrayList<>(); diff --git a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignedRoleUserManagementService.java b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignedRoleUserManagementService.java index 7a8c7fb05..1cce57de4 100644 --- a/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignedRoleUserManagementService.java +++ b/abstracto-application/abstracto-modules/assignable-roles/assignable-roles-int/src/main/java/dev/sheldan/abstracto/assignableroles/service/management/AssignedRoleUserManagementService.java @@ -10,6 +10,7 @@ import java.util.Optional; public interface AssignedRoleUserManagementService { void addAssignedRoleToUser(AssignableRole assignableRole, AUserInAServer aUserInAServer); void removeAssignedRoleFromUser(AssignableRole assignableRole, AUserInAServer aUserInAServer); + void removeAssignedRoleFromUser(AssignableRole assignableRole, AssignedRoleUser user); AssignedRoleUser createAssignedRoleUser(AUserInAServer aUserInAServer); void clearAllAssignedRolesOfUser(AUserInAServer userInAServer); boolean doesAssignedRoleUserExist(AUserInAServer aUserInAServer); diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/DisabledExpRoleRepository.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/DisabledExpRoleRepository.java index c908e79b1..7d65d9a4b 100644 --- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/DisabledExpRoleRepository.java +++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/DisabledExpRoleRepository.java @@ -4,10 +4,8 @@ import dev.sheldan.abstracto.core.models.database.ARole; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.experience.models.database.ADisabledExpRole; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; /** @@ -15,15 +13,11 @@ import java.util.List; */ @Repository public interface DisabledExpRoleRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByRole(ARole role); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) ADisabledExpRole findByRole(ARole role); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) void deleteByRole(ARole role); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List getByRole_Server(AServer server); } diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/ExperienceLevelRepository.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/ExperienceLevelRepository.java index a2f7e2ca6..fee9214fc 100644 --- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/ExperienceLevelRepository.java +++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/ExperienceLevelRepository.java @@ -3,11 +3,9 @@ package dev.sheldan.abstracto.experience.repository; import dev.sheldan.abstracto.experience.models.database.AExperienceLevel; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @@ -18,15 +16,12 @@ import java.util.Optional; public interface ExperienceLevelRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Integer aLong); @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsById(@NonNull Integer aLong); @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findAll(); } diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/ExperienceRoleRepository.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/ExperienceRoleRepository.java index 65ed93d7a..cd474db40 100644 --- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/ExperienceRoleRepository.java +++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/ExperienceRoleRepository.java @@ -6,11 +6,9 @@ import dev.sheldan.abstracto.experience.models.database.AExperienceLevel; import dev.sheldan.abstracto.experience.models.database.AExperienceRole; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @@ -24,7 +22,6 @@ public interface ExperienceRoleRepository extends JpaRepository findByRole(ARole role); /** @@ -34,7 +31,6 @@ public interface ExperienceRoleRepository extends JpaRepository findByLevelAndRoleServer(AExperienceLevel level, AServer server); /** @@ -42,11 +38,9 @@ public interface ExperienceRoleRepository extends JpaRepository findByRoleServer(AServer server); @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); } diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/UserExperienceRepository.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/UserExperienceRepository.java index 44e77bbae..594dfd9ea 100644 --- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/UserExperienceRepository.java +++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/repository/UserExperienceRepository.java @@ -7,12 +7,10 @@ import org.jetbrains.annotations.NotNull; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.data.repository.query.Param; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @@ -27,7 +25,6 @@ public interface UserExperienceRepository extends JpaRepository findByUser_ServerReference(AServer server); /** @@ -37,7 +34,6 @@ public interface UserExperienceRepository extends JpaRepository findTop10ByUser_ServerReferenceOrderByExperienceDesc(AServer server, Pageable pageable); /** @@ -60,6 +56,5 @@ public interface UserExperienceRepository extends JpaRepository findById(@NonNull Long aLong); } diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/ADisabledExpRole.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/ADisabledExpRole.java index 78f64a042..ae9a63547 100644 --- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/ADisabledExpRole.java +++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/ADisabledExpRole.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.experience.models.database; import dev.sheldan.abstracto.core.models.database.ARole; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -19,8 +18,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class ADisabledExpRole implements Serializable { @Id diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AExperienceLevel.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AExperienceLevel.java index 280b26b6c..08c01da91 100644 --- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AExperienceLevel.java +++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AExperienceLevel.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.experience.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -18,8 +17,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AExperienceLevel implements Serializable { /** * The unique level from 0 to as defined in the configuration. Will be created on startup. diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AExperienceRole.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AExperienceRole.java index 01b7000eb..4ce4f073a 100644 --- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AExperienceRole.java +++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AExperienceRole.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.experience.models.database; import dev.sheldan.abstracto.core.models.database.ARole; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -23,8 +22,6 @@ import java.util.List; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AExperienceRole implements Serializable { /** @@ -65,7 +62,6 @@ public class AExperienceRole implements Serializable { */ @OneToMany(fetch = FetchType.LAZY, mappedBy = "currentExperienceRole") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List users = new ArrayList<>(); diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AUserExperience.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AUserExperience.java index a64d352fb..106f43fcd 100644 --- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AUserExperience.java +++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-int/src/main/java/dev/sheldan/abstracto/experience/models/database/AUserExperience.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.experience.models.database; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -22,8 +21,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AUserExperience implements Serializable { /** diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/AllowedInviteLinkRepository.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/AllowedInviteLinkRepository.java index efa340b12..6780c405f 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/AllowedInviteLinkRepository.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/AllowedInviteLinkRepository.java @@ -3,18 +3,14 @@ package dev.sheldan.abstracto.moderation.repository; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.moderation.models.database.AllowedInviteLink; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository public interface AllowedInviteLinkRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByCodeAndServer(String code, AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByCodeAndServer_Id(String code, Long serverId); } diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/FilteredInviteLinkRepository.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/FilteredInviteLinkRepository.java index 09dc2e057..59baf0436 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/FilteredInviteLinkRepository.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/FilteredInviteLinkRepository.java @@ -4,19 +4,15 @@ import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.moderation.models.database.FilteredInviteLink; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @Repository public interface FilteredInviteLinkRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByCodeAndServer(String code, AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByCodeAndServer_Id(String code, Long serverId); void deleteByServer_Id(Long serverId); diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/MuteRepository.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/MuteRepository.java index 1ce2b0dd0..0c5e926b3 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/MuteRepository.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/MuteRepository.java @@ -5,25 +5,19 @@ import dev.sheldan.abstracto.core.models.database.AUserInAServer; import dev.sheldan.abstracto.moderation.models.database.Mute; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @Repository public interface MuteRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByMutedUserAndMuteEndedFalse(AUserInAServer userInAServer); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Mute findTopByMutedUserAndMuteEndedFalse(AUserInAServer userInAServer); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findAllByMutedUserAndMuteEndedFalseOrderByMuteId_IdDesc(AUserInAServer aUserInAServer); @NotNull - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByMuteId_IdAndMuteId_ServerId(Long muteId, Long serverId); } diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/MuteRoleRepository.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/MuteRoleRepository.java index 597321d12..039264309 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/MuteRoleRepository.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/MuteRoleRepository.java @@ -3,21 +3,16 @@ package dev.sheldan.abstracto.moderation.repository; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.moderation.models.database.MuteRole; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; @Repository public interface MuteRoleRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) MuteRole findByRoleServer(AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findAllByRoleServer(AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByRoleServer(AServer server); } diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/UserNoteRepository.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/UserNoteRepository.java index cb6e5e4dc..c7a74f5af 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/UserNoteRepository.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/UserNoteRepository.java @@ -4,27 +4,21 @@ import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import dev.sheldan.abstracto.moderation.models.database.UserNote; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; @Repository public interface UserNoteRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByUser(AUserInAServer aUserInAServer); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByUser_ServerReference(AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByUserNoteId_IdAndUserNoteId_ServerId(@NonNull Long userNoteId, Long serverId); void deleteByUserNoteId_IdAndUserNoteId_ServerId(@NonNull Long aLong, Long serverId); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) UserNote findByUserNoteId_IdAndUserNoteId_ServerId(Long userNoteId, Long serverId); } diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/WarnRepository.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/WarnRepository.java index be1fc3abf..2646e639e 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/WarnRepository.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/repository/WarnRepository.java @@ -5,38 +5,29 @@ import dev.sheldan.abstracto.core.models.database.AUserInAServer; import dev.sheldan.abstracto.moderation.models.database.Warning; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.time.Instant; import java.util.List; import java.util.Optional; @Repository public interface WarnRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findAllByWarnedUser_ServerReferenceAndDecayedFalseAndWarnDateLessThan(AServer server, Instant cutOffDate); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findAllByWarnedUser_ServerReference(AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Long countByWarnedUser(AUserInAServer aUserInAServer); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Long countByWarnedUserAndDecayedFalse(AUserInAServer aUserInAServer); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByWarnedUser(AUserInAServer aUserInAServer); @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); @NotNull - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByWarnId_IdAndWarnId_ServerId(Long warnId, Long serverId); } diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/PurgeServiceBean.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/PurgeServiceBean.java index 2f0d08a3d..f6a5a006f 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/PurgeServiceBean.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/service/PurgeServiceBean.java @@ -91,7 +91,7 @@ public class PurgeServiceBean implements PurgeService { if (messagesToDeleteNow.size() > 1) { bulkDeleteMessages(channel, deletionFuture, messagesToDeleteNow, consumer); } else if (messagesToDeleteNow.size() == 1) { - messageService.deleteMessage(latestMessage).queue(consumer, deletionFuture::completeExceptionally); + messageService.deleteMessageWithAction(latestMessage).queue(consumer, deletionFuture::completeExceptionally); } } catch (Exception e) { diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/test/java/dev/sheldan/abstracto/moderation/listener/async/InviteLinkFilterListenerTest.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/test/java/dev/sheldan/abstracto/moderation/listener/async/InviteLinkFilterListenerTest.java index 9c7efab84..034f17beb 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/test/java/dev/sheldan/abstracto/moderation/listener/async/InviteLinkFilterListenerTest.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/test/java/dev/sheldan/abstracto/moderation/listener/async/InviteLinkFilterListenerTest.java @@ -18,7 +18,6 @@ import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; -import net.dv8tion.jda.api.requests.restaction.AuditableRestAction; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -27,6 +26,8 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; +import java.util.concurrent.CompletableFuture; + import static dev.sheldan.abstracto.moderation.listener.async.InviteLinkFilterListener.INVITE_LINK_DELETED_NOTIFICATION_EMBED_TEMPLATE_KEY; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; @@ -95,8 +96,7 @@ public class InviteLinkFilterListenerTest { @Test public void testExecutionWithOneNotAllowedInviteNoTrackNoNotification() { when(message.getContentRaw()).thenReturn(INVITE_LINK); - AuditableRestAction auditableRestAction = Mockito.mock(AuditableRestAction.class); - when(messageService.deleteMessage(message)).thenReturn(auditableRestAction); + when(messageService.deleteMessage(message)).thenReturn(CompletableFuture.completedFuture(null)); when(inviteLinkFilterService.isCodeFiltered(eq(INVITE_CODE), any(ServerUser.class))).thenReturn(true); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.TRACK_USES)).thenReturn(false); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.FILTER_NOTIFICATIONS)).thenReturn(false); @@ -109,8 +109,7 @@ public class InviteLinkFilterListenerTest { @Test public void testExecutionWithOneNotAllowedInviteTrackNoNotification() { when(message.getContentRaw()).thenReturn(INVITE_LINK); - AuditableRestAction auditableRestAction = Mockito.mock(AuditableRestAction.class); - when(messageService.deleteMessage(message)).thenReturn(auditableRestAction); + when(messageService.deleteMessage(message)).thenReturn(CompletableFuture.completedFuture(null)); when(inviteLinkFilterService.isCodeFiltered(eq(INVITE_CODE), any(ServerUser.class))).thenReturn(true); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.TRACK_USES)).thenReturn(true); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.FILTER_NOTIFICATIONS)).thenReturn(false); @@ -124,8 +123,7 @@ public class InviteLinkFilterListenerTest { @Test public void testExecutionWithOneNotAllowedInviteTrackNotification() { when(message.getContentRaw()).thenReturn(INVITE_LINK); - AuditableRestAction auditableRestAction = Mockito.mock(AuditableRestAction.class); - when(messageService.deleteMessage(message)).thenReturn(auditableRestAction); + when(messageService.deleteMessage(message)).thenReturn(CompletableFuture.completedFuture(null)); when(inviteLinkFilterService.isCodeFiltered(eq(INVITE_CODE), any(ServerUser.class))).thenReturn(true); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.TRACK_USES)).thenReturn(true); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.FILTER_NOTIFICATIONS)).thenReturn(true); @@ -140,8 +138,7 @@ public class InviteLinkFilterListenerTest { @Test public void testExecutionWithOneNotAllowedInviteNoTrackNotification() { when(message.getContentRaw()).thenReturn(INVITE_LINK); - AuditableRestAction auditableRestAction = Mockito.mock(AuditableRestAction.class); - when(messageService.deleteMessage(message)).thenReturn(auditableRestAction); + when(messageService.deleteMessage(message)).thenReturn(CompletableFuture.completedFuture(null)); when(inviteLinkFilterService.isCodeFiltered(eq(INVITE_CODE), any(ServerUser.class))).thenReturn(true); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.TRACK_USES)).thenReturn(false); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.FILTER_NOTIFICATIONS)).thenReturn(true); @@ -156,8 +153,7 @@ public class InviteLinkFilterListenerTest { @Test public void testExecutionWithOneNotAllowedInviteNoTrackNotificationNoPostTarget() { when(message.getContentRaw()).thenReturn(INVITE_LINK); - AuditableRestAction auditableRestAction = Mockito.mock(AuditableRestAction.class); - when(messageService.deleteMessage(message)).thenReturn(auditableRestAction); + when(messageService.deleteMessage(message)).thenReturn(CompletableFuture.completedFuture(null)); when(inviteLinkFilterService.isCodeFiltered(eq(INVITE_CODE), any(ServerUser.class))).thenReturn(true); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.TRACK_USES)).thenReturn(false); when(featureModeService.featureModeActive(ModerationFeatures.INVITE_FILTER, SERVER_ID, InviteFilterMode.FILTER_NOTIFICATIONS)).thenReturn(true); diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/test/java/dev/sheldan/abstracto/moderation/service/PurgeServiceBeanTest.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/test/java/dev/sheldan/abstracto/moderation/service/PurgeServiceBeanTest.java index c5529eb6b..4707193f8 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/test/java/dev/sheldan/abstracto/moderation/service/PurgeServiceBeanTest.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/test/java/dev/sheldan/abstracto/moderation/service/PurgeServiceBeanTest.java @@ -140,7 +140,7 @@ public class PurgeServiceBeanTest { when(history.getRetrievedHistory()).thenReturn(messagesToDelete); setupStatusMessageMocks(); AuditableRestAction auditableRestAction = Mockito.mock(AuditableRestAction.class); - when(messageService.deleteMessage(firstMessage)).thenReturn(auditableRestAction); + when(messageService.deleteMessageWithAction(firstMessage)).thenReturn(auditableRestAction); mockQueueDoubleVoidConsumer(auditableRestAction); CompletableFuture futures = testUnit.purgeMessagesInChannel(amountToDelete, textChannel, START_MESSAGE_ID, purgedMember); futures.whenComplete((aVoid, throwable) -> Assert.assertNull(throwable)); diff --git a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/AllowedInviteLink.java b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/AllowedInviteLink.java index 3f513802e..2f7166f60 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/AllowedInviteLink.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/AllowedInviteLink.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.moderation.models.database; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.time.Instant; @@ -15,8 +14,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AllowedInviteLink { @Id diff --git a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/FilteredInviteLink.java b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/FilteredInviteLink.java index ece1a1238..86b6fc958 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/FilteredInviteLink.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/FilteredInviteLink.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.moderation.models.database; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.time.Instant; @@ -15,8 +14,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class FilteredInviteLink { @Id diff --git a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Mute.java b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Mute.java index e660188e2..930a9ba7f 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Mute.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Mute.java @@ -5,7 +5,6 @@ import dev.sheldan.abstracto.core.models.database.AChannel; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -22,8 +21,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Mute implements Serializable { /** diff --git a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/MuteRole.java b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/MuteRole.java index c1076b421..931514c72 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/MuteRole.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/MuteRole.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.moderation.models.database; import dev.sheldan.abstracto.core.models.database.ARole; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -20,8 +19,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class MuteRole implements Serializable { /** diff --git a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/UserNote.java b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/UserNote.java index f1669f337..a0b569156 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/UserNote.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/UserNote.java @@ -4,7 +4,6 @@ import dev.sheldan.abstracto.core.models.ServerSpecificId; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -18,8 +17,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class UserNote implements Serializable { @EmbeddedId diff --git a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Warning.java b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Warning.java index 2f7386c41..0d07e7d3c 100644 --- a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Warning.java +++ b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Warning.java @@ -4,7 +4,6 @@ import dev.sheldan.abstracto.core.models.ServerSpecificId; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -19,8 +18,6 @@ import java.time.Instant; @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Warning implements Serializable { /** diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailMessageRepository.java b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailMessageRepository.java index 2845f676b..cc266ac62 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailMessageRepository.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailMessageRepository.java @@ -3,10 +3,8 @@ package dev.sheldan.abstracto.modmail.repository; import dev.sheldan.abstracto.modmail.models.database.ModMailMessage; import dev.sheldan.abstracto.modmail.models.database.ModMailThread; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @@ -15,9 +13,7 @@ import java.util.Optional; */ @Repository public interface ModMailMessageRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByThreadReference(ModMailThread modMailThread); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByMessageId(Long messageId); } diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailRoleRepository.java b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailRoleRepository.java index ecef36ecb..548b25293 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailRoleRepository.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailRoleRepository.java @@ -4,10 +4,8 @@ import dev.sheldan.abstracto.core.models.database.ARole; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.modmail.models.database.ModMailRole; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; /** @@ -15,12 +13,9 @@ import java.util.List; */ @Repository public interface ModMailRoleRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByServerAndRole(AServer server, ARole role); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) void deleteByServerAndRole(AServer server, ARole role); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByServer(AServer server); } diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailSubscriberRepository.java b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailSubscriberRepository.java index 46b098c85..0a94587a8 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailSubscriberRepository.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailSubscriberRepository.java @@ -4,10 +4,8 @@ import dev.sheldan.abstracto.core.models.database.AUserInAServer; import dev.sheldan.abstracto.modmail.models.database.ModMailThread; import dev.sheldan.abstracto.modmail.models.database.ModMailThreadSubscriber; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; /** @@ -15,12 +13,9 @@ import java.util.List; */ @Repository public interface ModMailSubscriberRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByThreadReference(ModMailThread thread); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsBySubscriberAndThreadReference(AUserInAServer aUserInAServer, ModMailThread modMailThread); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) void deleteBySubscriberAndThreadReference(AUserInAServer aUserInAServer, ModMailThread modMailThread); } diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailThreadRepository.java b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailThreadRepository.java index cce256897..1c2f99d9b 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailThreadRepository.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/repository/ModMailThreadRepository.java @@ -8,11 +8,9 @@ import dev.sheldan.abstracto.modmail.models.database.ModMailThread; import dev.sheldan.abstracto.modmail.models.database.ModMailThreadState; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @@ -22,35 +20,25 @@ import java.util.Optional; @Repository public interface ModMailThreadRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByChannel(AChannel channel); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByUser(AUserInAServer aUserInAServer); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) ModMailThread findTopByUserOrderByClosedDesc(AUserInAServer aUserInAServer); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByUser_UserReferenceAndStateNot(AUser user, ModMailThreadState state); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByUser_UserReferenceAndStateNot(AUser user, ModMailThreadState state); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByServerAndState(AServer server, ModMailThreadState state); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) ModMailThread findByUserAndStateNot(AUserInAServer userInAServer, ModMailThreadState state); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByUserAndStateNot(AUserInAServer userInAServer, ModMailThreadState state); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByUserAndState(AUserInAServer userInAServer, ModMailThreadState state); @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); } diff --git a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailMessage.java b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailMessage.java index be224e7be..9b17b2c44 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailMessage.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailMessage.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.modmail.models.database; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -22,8 +21,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class ModMailMessage implements Serializable { /** diff --git a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailRole.java b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailRole.java index 5d497ee96..c6c70133e 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailRole.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailRole.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.modmail.models.database; import dev.sheldan.abstracto.core.models.database.ARole; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -21,8 +20,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class ModMailRole implements Serializable { /** diff --git a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThread.java b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThread.java index 4330393aa..7dd4bc6e7 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThread.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThread.java @@ -4,7 +4,6 @@ import dev.sheldan.abstracto.core.models.database.AChannel; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -24,8 +23,6 @@ import java.util.List; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class ModMailThread implements Serializable { @Id @@ -73,7 +70,6 @@ public class ModMailThread implements Serializable { orphanRemoval = true, mappedBy = "threadReference") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List messages = new ArrayList<>(); /** @@ -85,7 +81,6 @@ public class ModMailThread implements Serializable { orphanRemoval = true, mappedBy = "threadReference") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List subscribers = new ArrayList<>(); /** diff --git a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThreadSubscriber.java b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThreadSubscriber.java index 983614959..2b7aedd00 100644 --- a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThreadSubscriber.java +++ b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThreadSubscriber.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.modmail.models.database; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.time.Instant; @@ -20,8 +19,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class ModMailThreadSubscriber { @Id diff --git a/abstracto-application/abstracto-modules/statistic/statistic-impl/src/main/java/dev/sheldan/abstracto/statistic/emotes/repository/TrackedEmoteRepository.java b/abstracto-application/abstracto-modules/statistic/statistic-impl/src/main/java/dev/sheldan/abstracto/statistic/emotes/repository/TrackedEmoteRepository.java index 696b819ff..1f8f57e9e 100644 --- a/abstracto-application/abstracto-modules/statistic/statistic-impl/src/main/java/dev/sheldan/abstracto/statistic/emotes/repository/TrackedEmoteRepository.java +++ b/abstracto-application/abstracto-modules/statistic/statistic-impl/src/main/java/dev/sheldan/abstracto/statistic/emotes/repository/TrackedEmoteRepository.java @@ -3,10 +3,8 @@ package dev.sheldan.abstracto.statistic.emotes.repository; import dev.sheldan.abstracto.core.models.ServerSpecificId; import dev.sheldan.abstracto.statistic.emotes.model.database.TrackedEmote; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; /** @@ -20,7 +18,6 @@ public interface TrackedEmoteRepository extends JpaRepository findByTrackedEmoteId_ServerIdAndDeletedFalseAndExternalFalse(Long serverId); /** @@ -29,7 +26,6 @@ public interface TrackedEmoteRepository extends JpaRepository findByTrackedEmoteId_ServerIdAndTrackingEnabledTrue(Long serverId); @@ -38,6 +34,5 @@ public interface TrackedEmoteRepository extends JpaRepository findByTrackedEmoteId_ServerId(Long serverId); } diff --git a/abstracto-application/abstracto-modules/statistic/statistic-int/src/main/java/dev/sheldan/abstracto/statistic/emotes/model/database/TrackedEmote.java b/abstracto-application/abstracto-modules/statistic/statistic-int/src/main/java/dev/sheldan/abstracto/statistic/emotes/model/database/TrackedEmote.java index 1c3580833..eda5d3b45 100644 --- a/abstracto-application/abstracto-modules/statistic/statistic-int/src/main/java/dev/sheldan/abstracto/statistic/emotes/model/database/TrackedEmote.java +++ b/abstracto-application/abstracto-modules/statistic/statistic-int/src/main/java/dev/sheldan/abstracto/statistic/emotes/model/database/TrackedEmote.java @@ -4,7 +4,6 @@ import dev.sheldan.abstracto.core.models.Fakeable; import dev.sheldan.abstracto.core.models.ServerSpecificId; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -23,8 +22,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class TrackedEmote implements Serializable, Fakeable { @EmbeddedId diff --git a/abstracto-application/abstracto-modules/statistic/statistic-int/src/main/java/dev/sheldan/abstracto/statistic/emotes/model/database/UsedEmote.java b/abstracto-application/abstracto-modules/statistic/statistic-int/src/main/java/dev/sheldan/abstracto/statistic/emotes/model/database/UsedEmote.java index cbd22fefd..a4f299e47 100644 --- a/abstracto-application/abstracto-modules/statistic/statistic-int/src/main/java/dev/sheldan/abstracto/statistic/emotes/model/database/UsedEmote.java +++ b/abstracto-application/abstracto-modules/statistic/statistic-int/src/main/java/dev/sheldan/abstracto/statistic/emotes/model/database/UsedEmote.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.statistic.emotes.model.database; import dev.sheldan.abstracto.statistic.emotes.model.database.embed.UsedEmoteDay; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.time.Instant; @@ -18,8 +17,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class UsedEmote { /** diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/EmbeddedMessageRepository.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/EmbeddedMessageRepository.java index 11415726e..aa611b8a9 100644 --- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/EmbeddedMessageRepository.java +++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/EmbeddedMessageRepository.java @@ -2,12 +2,9 @@ package dev.sheldan.abstracto.utility.repository; import dev.sheldan.abstracto.utility.models.database.EmbeddedMessage; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; -import javax.persistence.QueryHint; public interface EmbeddedMessageRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) EmbeddedMessage findByEmbeddingMessageId(Long messageId); } diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/ReminderRepository.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/ReminderRepository.java index ee634c309..f318ce688 100644 --- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/ReminderRepository.java +++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/ReminderRepository.java @@ -4,25 +4,20 @@ import dev.sheldan.abstracto.core.models.database.AUserInAServer; import dev.sheldan.abstracto.utility.models.database.Reminder; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @Repository public interface ReminderRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List getByRemindedUserAndRemindedFalse(AUserInAServer aUserInAServer); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Reminder getByIdAndRemindedUserAndRemindedFalse(Long reminderId, AUserInAServer aUserInAServer); @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); } diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/StarboardPostReactionRepository.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/StarboardPostReactionRepository.java index c8a0aed93..c05b9752f 100644 --- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/StarboardPostReactionRepository.java +++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/StarboardPostReactionRepository.java @@ -5,17 +5,13 @@ import dev.sheldan.abstracto.utility.models.database.StarboardPost; import dev.sheldan.abstracto.utility.models.database.StarboardPostReaction; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import org.springframework.data.jpa.repository.QueryHints; -import javax.persistence.QueryHint; import java.util.List; public interface StarboardPostReactionRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) void deleteByReactorAndStarboardPost(AUserInAServer user, StarboardPost post); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) void deleteByStarboardPost(StarboardPost post); @Query(value = "SELECT r.reactor_user_in_server_id as userId, COUNT(*) AS starCount \n" + diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/StarboardPostRepository.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/StarboardPostRepository.java index 76f52ac09..7f14fb64c 100644 --- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/StarboardPostRepository.java +++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/StarboardPostRepository.java @@ -2,25 +2,19 @@ package dev.sheldan.abstracto.utility.repository; import dev.sheldan.abstracto.utility.models.database.StarboardPost; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; @Repository public interface StarboardPostRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) StarboardPost findByPostMessageId(Long messageId); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) StarboardPost findByStarboardMessageId(Long messageId); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByStarboardMessageId(Long messageId); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) - List findByServer(Long serverId); + List findByServer_Id(Long serverId); } diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/SuggestionRepository.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/SuggestionRepository.java index cf54d9c14..fd92232a8 100644 --- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/SuggestionRepository.java +++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/repository/SuggestionRepository.java @@ -4,17 +4,14 @@ import dev.sheldan.abstracto.core.models.ServerSpecificId; import dev.sheldan.abstracto.utility.models.database.Suggestion; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository public interface SuggestionRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull ServerSpecificId aLong); } diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/service/management/StarboardPostManagementServiceBean.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/service/management/StarboardPostManagementServiceBean.java index 606ab7c76..6f3433c81 100644 --- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/service/management/StarboardPostManagementServiceBean.java +++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/service/management/StarboardPostManagementServiceBean.java @@ -65,7 +65,7 @@ public class StarboardPostManagementServiceBean implements StarboardPostManageme @Override public List retrieveAllPosts(Long serverId) { - return repository.findByServer(serverId); + return repository.findByServer_Id(serverId); } @Override diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/service/management/StarboardPostManagementServiceBeanTest.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/service/management/StarboardPostManagementServiceBeanTest.java index e617c3445..74def5293 100644 --- a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/service/management/StarboardPostManagementServiceBeanTest.java +++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/service/management/StarboardPostManagementServiceBeanTest.java @@ -88,7 +88,7 @@ public class StarboardPostManagementServiceBeanTest { StarboardPost starboardPost2 = StarboardPost.builder().reactions(Arrays.asList(reaction)).build(); StarboardPost starboardPost3 = StarboardPost.builder().reactions(new ArrayList<>()).build(); List posts = Arrays.asList(starboardPost1, starboardPost2, starboardPost3); - when(repository.findByServer(server.getId())).thenReturn(posts); + when(repository.findByServer_Id(server.getId())).thenReturn(posts); List topPosts = testUnit.retrieveTopPosts(server.getId(), count); Assert.assertEquals(count.intValue(), topPosts.size()); StarboardPost topMostPost = topPosts.get(0); @@ -107,7 +107,7 @@ public class StarboardPostManagementServiceBeanTest { StarboardPost starboardPost2 = StarboardPost.builder().reactions(Arrays.asList(reaction)).build(); StarboardPost starboardPost3 = StarboardPost.builder().reactions(new ArrayList<>()).build(); List posts = Arrays.asList(starboardPost1, starboardPost2, starboardPost3); - when(repository.findByServer(server.getId())).thenReturn(posts); + when(repository.findByServer_Id(server.getId())).thenReturn(posts); List topPosts = testUnit.retrieveTopPosts(server.getId(), count); StarboardPost topMostPost = topPosts.get(0); StarboardPost secondTop = topPosts.get(1); @@ -190,7 +190,7 @@ public class StarboardPostManagementServiceBeanTest { StarboardPost starboardPost1 = StarboardPost.builder().build(); StarboardPost starboardPost2 = StarboardPost.builder().build(); List posts = Arrays.asList(starboardPost1, starboardPost2); - when(repository.findByServer(server.getId())).thenReturn(posts); + when(repository.findByServer_Id(server.getId())).thenReturn(posts); Integer retrievedPostCount = testUnit.getPostCount(server.getId()); Assert.assertEquals(posts.size(), retrievedPostCount.intValue()); } diff --git a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/EmbeddedMessage.java b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/EmbeddedMessage.java index 17a000bd7..f8a317c91 100644 --- a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/EmbeddedMessage.java +++ b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/EmbeddedMessage.java @@ -4,7 +4,6 @@ import dev.sheldan.abstracto.core.models.database.AChannel; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -18,8 +17,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class EmbeddedMessage implements Serializable { @Getter diff --git a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/PostedImage.java b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/PostedImage.java index 955982838..8dc2111ca 100644 --- a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/PostedImage.java +++ b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/PostedImage.java @@ -5,7 +5,6 @@ import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import dev.sheldan.abstracto.utility.models.database.embed.PostIdentifier; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.time.Instant; @@ -19,8 +18,6 @@ import java.util.List; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class PostedImage { @Getter @@ -57,7 +54,6 @@ public class PostedImage { orphanRemoval = true, cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, mappedBy = "originalPost") - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List reposts; } diff --git a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Reminder.java b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Reminder.java index fc9f53b8d..724a4c382 100644 --- a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Reminder.java +++ b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Reminder.java @@ -4,7 +4,6 @@ import dev.sheldan.abstracto.core.models.database.AChannel; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -18,8 +17,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Reminder implements Serializable { @Id diff --git a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Repost.java b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Repost.java index 5cbbb6ec4..434b915fe 100644 --- a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Repost.java +++ b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Repost.java @@ -4,7 +4,6 @@ import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import dev.sheldan.abstracto.utility.models.database.embed.RepostIdentifier; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.time.Instant; @@ -17,8 +16,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Repost { @EmbeddedId diff --git a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/RepostCheckChannelGroup.java b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/RepostCheckChannelGroup.java index 22864ea25..a3d110a84 100644 --- a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/RepostCheckChannelGroup.java +++ b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/RepostCheckChannelGroup.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.utility.models.database; import dev.sheldan.abstracto.core.models.database.AChannelGroup; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.time.Instant; @@ -15,8 +14,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class RepostCheckChannelGroup { @Id diff --git a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/StarboardPost.java b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/StarboardPost.java index 334386925..483e183db 100644 --- a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/StarboardPost.java +++ b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/StarboardPost.java @@ -4,7 +4,6 @@ import dev.sheldan.abstracto.core.models.database.AChannel; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -19,8 +18,6 @@ import java.util.List; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class StarboardPost implements Serializable { @Id @@ -70,7 +67,6 @@ public class StarboardPost implements Serializable { orphanRemoval = true, cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, mappedBy = "starboardPost") - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List reactions; @Column(name = "starred_date") diff --git a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/StarboardPostReaction.java b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/StarboardPostReaction.java index f3b66972e..bd077a577 100644 --- a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/StarboardPostReaction.java +++ b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/StarboardPostReaction.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.utility.models.database; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -17,8 +16,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class StarboardPostReaction implements Serializable { @Id diff --git a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Suggestion.java b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Suggestion.java index 9d5b51809..90428ec62 100644 --- a/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Suggestion.java +++ b/abstracto-application/abstracto-modules/utility/utility-int/src/main/java/dev/sheldan/abstracto/utility/models/database/Suggestion.java @@ -6,7 +6,6 @@ import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import dev.sheldan.abstracto.utility.models.SuggestionState; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -20,8 +19,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Suggestion implements Serializable { @Id diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/ChannelGroupCommandRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/ChannelGroupCommandRepository.java index 07476bc3a..7f860c976 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/ChannelGroupCommandRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/ChannelGroupCommandRepository.java @@ -4,17 +4,13 @@ import dev.sheldan.abstracto.core.command.models.database.ACommand; import dev.sheldan.abstracto.core.models.database.AChannelGroup; import dev.sheldan.abstracto.core.models.database.AChannelGroupCommand; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; public interface ChannelGroupCommandRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByCommandAndGroup(ACommand command, AChannelGroup group); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByCommand(ACommand command); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandInServerRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandInServerRepository.java index 0dc57f734..ebfde4770 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandInServerRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandInServerRepository.java @@ -4,17 +4,13 @@ import dev.sheldan.abstracto.core.command.models.database.ACommand; import dev.sheldan.abstracto.core.command.models.database.ACommandInAServer; import dev.sheldan.abstracto.core.models.database.AServer; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; @Repository public interface CommandInServerRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) ACommandInAServer findByServerReferenceAndCommandReference(AServer server, ACommand command); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) ACommandInAServer findByServerReference_IdAndCommandReference(Long serverId, ACommand command); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandRepository.java index bd174df24..637c3f723 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandRepository.java @@ -2,18 +2,14 @@ package dev.sheldan.abstracto.core.command.repository; import dev.sheldan.abstracto.core.command.models.database.ACommand; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository public interface CommandRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByNameIgnoreCase(String name); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByNameIgnoreCase(String name); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/ModuleRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/ModuleRepository.java index dc25128b2..53a6c9c49 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/ModuleRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/ModuleRepository.java @@ -2,12 +2,9 @@ package dev.sheldan.abstracto.core.command.repository; import dev.sheldan.abstracto.core.command.models.database.AModule; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; -import javax.persistence.QueryHint; public interface ModuleRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) AModule findByName(String name); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelGroupRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelGroupRepository.java index 2b7d0386c..e8d733e08 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelGroupRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelGroupRepository.java @@ -4,29 +4,22 @@ import dev.sheldan.abstracto.core.models.database.AChannel; import dev.sheldan.abstracto.core.models.database.AChannelGroup; import dev.sheldan.abstracto.core.models.database.AServer; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @Repository public interface ChannelGroupRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByGroupNameAndServer(String name, AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByGroupNameAndServerAndChannelGroupType_GroupTypeKey(String name, AServer server, String groupTyeKey); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByServerAndChannelGroupType_GroupTypeKey(AServer server, String groupTyeKey); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByServer(AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByGroupNameAndServer(String name, AServer server); List findAllByChannels(AChannel channel); diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelRepository.java index 33a684e65..0f7db5748 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ChannelRepository.java @@ -3,11 +3,9 @@ package dev.sheldan.abstracto.core.repository; import dev.sheldan.abstracto.core.models.database.AChannel; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository @@ -15,10 +13,8 @@ public interface ChannelRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsById(@NonNull Long aLong); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ConfigRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ConfigRepository.java index e82dfd0e9..7d96a0ecc 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ConfigRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ConfigRepository.java @@ -3,20 +3,15 @@ package dev.sheldan.abstracto.core.repository; import dev.sheldan.abstracto.core.models.database.AConfig; import dev.sheldan.abstracto.core.models.database.AServer; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; @Repository public interface ConfigRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) AConfig findAConfigByServerIdAndName(Long serverId, String name); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsAConfigByServerIdAndName(Long serverId, String name); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsAConfigByServerAndName(AServer server, String name); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultEmoteRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultEmoteRepository.java index c616a085f..f0cc7344c 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultEmoteRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultEmoteRepository.java @@ -3,19 +3,15 @@ package dev.sheldan.abstracto.core.repository; import dev.sheldan.abstracto.core.models.database.DefaultEmote; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; @Repository public interface DefaultEmoteRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) DefaultEmote getByEmoteKey(String emoteKey); @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findAll(); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/EmoteRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/EmoteRepository.java index 8d477ca97..1c5ad37f0 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/EmoteRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/EmoteRepository.java @@ -4,33 +4,25 @@ import dev.sheldan.abstracto.core.models.database.AEmote; import dev.sheldan.abstracto.core.models.database.AServer; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository public interface EmoteRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) AEmote findAEmoteByNameAndServerRef(String name, AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByNameAndServerRef(String name, AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByEmoteId(Long emoteId); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByEmoteId(Long emoteId); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByEmoteIdAndServerRef(String emoteId, AServer server); @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Integer aLong); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureFlagRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureFlagRepository.java index 8e576f20b..10ef732dd 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureFlagRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureFlagRepository.java @@ -4,20 +4,15 @@ import dev.sheldan.abstracto.core.models.database.AFeature; import dev.sheldan.abstracto.core.models.database.AFeatureFlag; import dev.sheldan.abstracto.core.models.database.AServer; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; public interface FeatureFlagRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByServerAndFeature(AServer server, AFeature key); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByServerAndFeature(AServer server, AFeature key); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findAllByServer(AServer server); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureModeRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureModeRepository.java index 9b855985d..4b7787e8e 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureModeRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureModeRepository.java @@ -4,23 +4,18 @@ import dev.sheldan.abstracto.core.models.database.AFeature; import dev.sheldan.abstracto.core.models.database.AFeatureMode; import dev.sheldan.abstracto.core.models.database.AServer; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @Repository public interface FeatureModeRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByServerAndFeatureFlag_FeatureAndFeatureMode(AServer server, AFeature feature, String mode); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByServer(AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByServerAndFeatureFlag_Feature(AServer server, AFeature feature); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureRepository.java index 6ce819122..8347930e6 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/FeatureRepository.java @@ -2,14 +2,11 @@ package dev.sheldan.abstracto.core.repository; import dev.sheldan.abstracto.core.models.database.AFeature; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; @Repository public interface FeatureRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) AFeature findByKey(String key); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/PostTargetRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/PostTargetRepository.java index 5cfff1e8d..026a48027 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/PostTargetRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/PostTargetRepository.java @@ -3,22 +3,17 @@ package dev.sheldan.abstracto.core.repository; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.PostTarget; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; @Repository public interface PostTargetRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) PostTarget findPostTargetByNameAndServerReference(String name, AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByNameAndServerReference(String name, AServer server); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByServerReference(AServer server); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/RoleRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/RoleRepository.java index 3c53fb8b5..6645aba13 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/RoleRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/RoleRepository.java @@ -3,17 +3,14 @@ package dev.sheldan.abstracto.core.repository; import dev.sheldan.abstracto.core.models.database.ARole; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository public interface RoleRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ServerRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ServerRepository.java index 4507b93a2..954b821f6 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ServerRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/ServerRepository.java @@ -3,11 +3,9 @@ package dev.sheldan.abstracto.core.repository; import dev.sheldan.abstracto.core.models.database.AServer; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @@ -16,15 +14,12 @@ public interface ServerRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsById(@NonNull Long aLong); @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findAll(); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/UserInServerRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/UserInServerRepository.java index fe9a7e671..4aa5a7cdb 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/UserInServerRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/UserInServerRepository.java @@ -4,28 +4,21 @@ import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.models.database.AUser; import dev.sheldan.abstracto.core.models.database.AUserInAServer; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.List; import java.util.Optional; @Repository public interface UserInServerRepository extends JpaRepository { - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByServerReferenceAndUserReference(AServer serverId, AUser userId); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findByServerReference_IdAndUserReference_Id(Long serverId, Long userId); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByServerReferenceAndUserReference(AServer server, AUser user); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsByServerReference_IdAndUserReference_Id(Long serverId, Long userId); - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findByUserReference(AUser user); } \ No newline at end of file diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/UserRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/UserRepository.java index 805cc5424..8cb58b5c6 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/UserRepository.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/UserRepository.java @@ -3,21 +3,17 @@ package dev.sheldan.abstracto.core.repository; import dev.sheldan.abstracto.core.models.database.AUser; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; @Repository public interface UserRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional findById(@NonNull Long aLong); @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) boolean existsById(@NonNull Long aLong); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/CacheServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/CacheServiceBean.java index 12e66f4d7..25c08ec60 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/CacheServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/CacheServiceBean.java @@ -1,36 +1,20 @@ package dev.sheldan.abstracto.core.service; -import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException; import dev.sheldan.abstracto.templating.service.TemplateService; import lombok.extern.slf4j.Slf4j; -import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import javax.persistence.EntityManagerFactory; - @Component @Slf4j public class CacheServiceBean { - private SessionFactory sessionFactory; - @Autowired private TemplateService templateService; - @Autowired - public CacheServiceBean(EntityManagerFactory factory) { - SessionFactory unWrapped = factory.unwrap(SessionFactory.class); - if(unWrapped == null){ - throw new AbstractoRunTimeException("Factory is not a hibernate factory."); - } - this.sessionFactory = unWrapped; - } - public void clearCaches() { log.info("Clearing all caches."); - sessionFactory.getCache().evictAllRegions(); templateService.clearCache(); } } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/MessageServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/MessageServiceBean.java index e4f2f89f2..38908a15d 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/MessageServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/MessageServiceBean.java @@ -179,11 +179,16 @@ public class MessageServiceBean implements MessageService { } @Override - public AuditableRestAction deleteMessage(Message message) { + public AuditableRestAction deleteMessageWithAction(Message message) { metricService.incrementCounter(MESSAGE_DELETE_METRIC); return message.delete(); } + @Override + public CompletableFuture deleteMessage(Message message) { + return deleteMessageWithAction(message).submit(); + } + @PostConstruct public void postConstruct() { metricService.registerCounter(MESSAGE_SEND_METRIC, "Messages send to discord"); diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/ReactionServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/ReactionServiceBean.java index d58a3ab9a..3ebff955e 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/ReactionServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/ReactionServiceBean.java @@ -5,10 +5,13 @@ import dev.sheldan.abstracto.core.exception.EmoteNotInServerException; import dev.sheldan.abstracto.core.metrics.service.CounterMetric; import dev.sheldan.abstracto.core.metrics.service.MetricService; import dev.sheldan.abstracto.core.metrics.service.MetricTag; +import dev.sheldan.abstracto.core.models.ServerUser; +import dev.sheldan.abstracto.core.models.cache.CachedEmote; import dev.sheldan.abstracto.core.models.cache.CachedMessage; import dev.sheldan.abstracto.core.models.cache.CachedReaction; import dev.sheldan.abstracto.core.models.database.AEmote; import dev.sheldan.abstracto.core.service.management.EmoteManagementService; +import dev.sheldan.abstracto.core.utils.FutureUtils; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.entities.*; import org.springframework.beans.factory.annotation.Autowired; @@ -211,6 +214,22 @@ public class ReactionServiceBean implements ReactionService { return message.removeReaction(emoteById, user).submit(); } + @Override + public CompletableFuture removeReaction(Message message, CachedEmote cachedEmote, User user) { + metricService.incrementCounter(REACTION_REMOVED_METRIC); + String customEmoteAsUnicode = cachedEmote.getEmoteName() + ":" + cachedEmote.getEmoteId(); + return ((TextChannel) message.getChannel()).removeReactionById(message.getId(), customEmoteAsUnicode, user).submit(); + } + + @Override + public CompletableFuture removeReaction(CachedMessage message, CachedEmote cachedEmote, ServerUser user) { + CompletableFuture messageFuture = messageService.loadMessageFromCachedMessage(message); + CompletableFuture memberFuture = memberService.retrieveMemberInServer(user); + return FutureUtils.toSingleFuture(Arrays.asList(messageFuture, memberFuture)).thenCompose(unused -> { + return removeReaction(messageFuture.join(), cachedEmote, memberFuture.join().getUser()); + }); + } + @Override public CompletableFuture clearReactionFromMessageWithFuture(AEmote emote, Message message) { if(Boolean.TRUE.equals(emote.getCustom())) { diff --git a/abstracto-application/core/core-impl/src/main/resources/config/application.properties b/abstracto-application/core/core-impl/src/main/resources/config/application.properties index 67ae68e26..8fa69daa6 100644 --- a/abstracto-application/core/core-impl/src/main/resources/config/application.properties +++ b/abstracto-application/core/core-impl/src/main/resources/config/application.properties @@ -4,8 +4,8 @@ spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy spring.jpa.properties.hibernate.format_sql = false spring.jpa.properties.hibernate.generate_statistics = false -spring.jpa.properties.hibernate.cache.use_second_level_cache=true -spring.jpa.properties.hibernate.cache.use_query_cache=true +spring.jpa.properties.hibernate.cache.use_second_level_cache=false +spring.jpa.properties.hibernate.cache.use_query_cache=false spring.jpa.properties.hibernate.cache.region.factory_class=org.hibernate.cache.jcache.JCacheRegionFactory spring.jpa.properties.javax.persistence.sharedCache.mode=ENABLE_SELECTIVE spring.jpa.properties.hibernate.javax.cache.missing_cache_strategy = create diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommand.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommand.java index 7ff9c4807..bf321614e 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommand.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommand.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.core.command.models.database; import dev.sheldan.abstracto.core.models.database.AChannelGroupCommand; import dev.sheldan.abstracto.core.models.database.AFeature; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -17,9 +16,7 @@ import java.util.List; @AllArgsConstructor @Getter @Setter -@Cacheable @EqualsAndHashCode -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class ACommand implements Serializable { @Id @Column(name = "id") diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommandInAServer.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommandInAServer.java index a99f08a44..060902fee 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommandInAServer.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommandInAServer.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.core.command.models.database; import dev.sheldan.abstracto.core.models.database.ARole; import dev.sheldan.abstracto.core.models.database.AServer; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -17,8 +16,6 @@ import java.util.List; @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class ACommandInAServer implements Serializable { @Id @@ -40,7 +37,6 @@ public class ACommandInAServer implements Serializable { joinColumns = @JoinColumn(name = "command_in_server_id", referencedColumnName = "command_in_server_id"), inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id")) @Getter - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List allowedRoles; @ManyToMany @@ -49,7 +45,6 @@ public class ACommandInAServer implements Serializable { joinColumns = @JoinColumn(name = "command_in_server_id", referencedColumnName = "command_in_server_id"), inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id")) @Getter - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List immuneRoles; @Getter diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/AModule.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/AModule.java index ce4f4ba48..00a145751 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/AModule.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/AModule.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.command.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -16,8 +15,6 @@ import java.util.List; @AllArgsConstructor @Getter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AModule implements Serializable { @Id @@ -32,7 +29,6 @@ public class AModule implements Serializable { cascade = {CascadeType.PERSIST, CascadeType.MERGE}, orphanRemoval = true, mappedBy = "module") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List commands = new ArrayList<>(); @Column(name = "created") diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannel.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannel.java index b7dfe8ca1..fdc3817ca 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannel.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannel.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database; import dev.sheldan.abstracto.core.models.SnowFlake; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -15,8 +14,6 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AChannel implements SnowFlake, Serializable { @Id @@ -26,7 +23,6 @@ public class AChannel implements SnowFlake, Serializable { @Getter @ManyToMany(mappedBy = "channels") - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List groups; @ManyToOne(fetch = FetchType.LAZY) diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannelGroup.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannelGroup.java index bcacd0747..31eae7f6d 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannelGroup.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannelGroup.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -16,8 +15,6 @@ import java.util.List; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AChannelGroup implements Serializable { @Id @@ -50,7 +47,6 @@ public class AChannelGroup implements Serializable { name = "channel_in_group", joinColumns = @JoinColumn(name = "group_id"), inverseJoinColumns = @JoinColumn(name = "channel_id")) - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List channels; diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannelGroupCommand.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannelGroupCommand.java index 669719bbe..cd9a12586 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannelGroupCommand.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannelGroupCommand.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database; import dev.sheldan.abstracto.core.command.models.database.ACommand; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -15,8 +14,6 @@ import java.time.Instant; @AllArgsConstructor @Getter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AChannelGroupCommand implements Serializable { @Id diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AConfig.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AConfig.java index 77ca950cc..d093bd0d5 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AConfig.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AConfig.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -15,8 +14,6 @@ import java.time.Instant; @Getter @Setter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AConfig implements Serializable { @Id diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AEmote.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AEmote.java index 3d00fb29f..a729b31fb 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AEmote.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AEmote.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database; import dev.sheldan.abstracto.core.models.Fakeable; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -15,8 +14,6 @@ import java.time.Instant; @AllArgsConstructor @Getter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AEmote implements Serializable, Fakeable { @javax.persistence.Id diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeature.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeature.java index 06c8cdb01..acb1d71f8 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeature.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeature.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.core.models.database; import dev.sheldan.abstracto.core.command.models.database.ACommand; import dev.sheldan.abstracto.core.models.SnowFlake; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -16,8 +15,6 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AFeature implements SnowFlake, Serializable { @Id @@ -34,7 +31,6 @@ public class AFeature implements SnowFlake, Serializable { @Getter @Setter @OneToMany(fetch = FetchType.LAZY, mappedBy = "feature") - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List commands; @Column(name = "created") diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureFlag.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureFlag.java index 5e5a8e255..b4ec55058 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureFlag.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureFlag.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -16,8 +15,6 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AFeatureFlag implements Serializable { @Id @@ -34,7 +31,6 @@ public class AFeatureFlag implements Serializable { private AFeature feature; @OneToMany(fetch = FetchType.LAZY, mappedBy = "featureFlag") - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List modes; @Column(name = "enabled") diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureMode.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureMode.java index 1dea191e7..afb2c22ae 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureMode.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureMode.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -15,8 +14,6 @@ import java.time.Instant; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AFeatureMode implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ARole.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ARole.java index 416038629..a801662f0 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ARole.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ARole.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database; import dev.sheldan.abstracto.core.models.SnowFlake; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -14,8 +13,6 @@ import java.time.Instant; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class ARole implements SnowFlake, Serializable { @Id diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AServer.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AServer.java index ad0492ed3..c6e4edd35 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AServer.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AServer.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database; import dev.sheldan.abstracto.core.models.SnowFlake; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -17,8 +16,6 @@ import java.util.List; @AllArgsConstructor @Getter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AServer implements SnowFlake, Serializable { @Id @@ -44,7 +41,6 @@ public class AServer implements SnowFlake, Serializable { cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "server") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List roles = new ArrayList<>(); @OneToMany( @@ -53,7 +49,6 @@ public class AServer implements SnowFlake, Serializable { orphanRemoval = true, mappedBy = "server") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List channels = new ArrayList<>(); @OneToMany( @@ -62,7 +57,6 @@ public class AServer implements SnowFlake, Serializable { orphanRemoval = true, mappedBy = "server") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List channelGroups = new ArrayList<>(); @OneToMany( @@ -71,7 +65,6 @@ public class AServer implements SnowFlake, Serializable { orphanRemoval = true, mappedBy = "serverReference") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List users = new ArrayList<>(); @OneToMany( @@ -80,7 +73,6 @@ public class AServer implements SnowFlake, Serializable { orphanRemoval = true, mappedBy = "serverRef") @Builder.Default - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List emotes = new ArrayList<>(); diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUser.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUser.java index b43cf9dd6..ab306443b 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUser.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUser.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -15,8 +14,6 @@ import java.util.List; @NoArgsConstructor @Getter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AUser implements Serializable { @Id @@ -27,7 +24,6 @@ public class AUser implements Serializable { fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "serverReference") - @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) private List servers; @Column(name = "created") diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUserInAServer.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUserInAServer.java index b4bdd073b..6db454ede 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUserInAServer.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUserInAServer.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -15,8 +14,6 @@ import java.time.Instant; @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AUserInAServer implements Serializable { @Id diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AllowedMention.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AllowedMention.java index 92966ce4d..6251a2751 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AllowedMention.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AllowedMention.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -13,11 +12,9 @@ import java.time.Instant; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode -@Cacheable @Getter @Setter @ToString -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class AllowedMention implements Serializable { @Id diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ChannelGroupType.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ChannelGroupType.java index 0c6f9ad42..b21b0a892 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ChannelGroupType.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ChannelGroupType.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.time.Instant; @@ -14,8 +13,6 @@ import java.time.Instant; @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class ChannelGroupType { @Id diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/Counter.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/Counter.java index e66139416..30eb83e22 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/Counter.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/Counter.java @@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database; import dev.sheldan.abstracto.core.models.CounterId; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -15,8 +14,6 @@ import java.io.Serializable; @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Counter implements Serializable { @EmbeddedId diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultEmote.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultEmote.java index 1b95c10db..678e3a822 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultEmote.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultEmote.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -14,8 +13,6 @@ import java.time.Instant; @AllArgsConstructor @Getter @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class DefaultEmote implements Serializable { @javax.persistence.Id diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/PostTarget.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/PostTarget.java index b655779f0..2935d5964 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/PostTarget.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/PostTarget.java @@ -1,7 +1,6 @@ package dev.sheldan.abstracto.core.models.database; import lombok.*; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; @@ -13,8 +12,6 @@ import java.time.Instant; @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode -@Cacheable -@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class PostTarget implements Serializable { @Id diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/MessageService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/MessageService.java index 5514a2b42..30c8f014a 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/MessageService.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/MessageService.java @@ -33,5 +33,6 @@ public interface MessageService { CompletableFuture loadMessage(Long serverId, Long channelId, Long messageId); MessageAction editMessage(Message message, MessageEmbed messageEmbed); MessageAction editMessage(Message message, String text, MessageEmbed messageEmbed); - AuditableRestAction deleteMessage(Message message); + AuditableRestAction deleteMessageWithAction(Message message); + CompletableFuture deleteMessage(Message message); } diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/ReactionService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/ReactionService.java index 3371442fa..1bd8a13eb 100644 --- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/ReactionService.java +++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/ReactionService.java @@ -1,5 +1,7 @@ package dev.sheldan.abstracto.core.service; +import dev.sheldan.abstracto.core.models.ServerUser; +import dev.sheldan.abstracto.core.models.cache.CachedEmote; import dev.sheldan.abstracto.core.models.cache.CachedMessage; import dev.sheldan.abstracto.core.models.cache.CachedReaction; import dev.sheldan.abstracto.core.models.database.AEmote; @@ -26,6 +28,8 @@ public interface ReactionService { CompletableFuture removeReaction(Message message, String key, User user); CompletableFuture removeReaction(Message message, Emote emoteById); CompletableFuture removeReaction(Message message, Emote emoteById, User user); + CompletableFuture removeReaction(Message message, CachedEmote cachedEmote, User user); + CompletableFuture removeReaction(CachedMessage message, CachedEmote cachedEmote, ServerUser user); CompletableFuture removeReactionFromMessageWithFuture(AEmote emote, Message message); CompletableFuture clearReactionFromMessageWithFuture(AEmote emote, Message message); CompletableFuture clearReaction(Message message, String key); diff --git a/abstracto-application/documentation/src/main/docs/asciidoc/modules/assignableRoles.adoc b/abstracto-application/documentation/src/main/docs/asciidoc/modules/assignableRoles.adoc index cc1f1fd56..8935a2918 100644 --- a/abstracto-application/documentation/src/main/docs/asciidoc/modules/assignableRoles.adoc +++ b/abstracto-application/documentation/src/main/docs/asciidoc/modules/assignableRoles.adoc @@ -1,6 +1,6 @@ === Assignable roles -This feature enables creating and maintaining so-called 'assignable role places'. These places are messages at which reactions are added, and when a member reacts a configured role is assigned to the user. +This feature enables creating and maintaining so-called 'assignable role places'. These places are messages at which reactions are added, and when a member reacts, a configured role, is assigned to the user. These places can consist of multiple messages (reactions are limited to 20 per message) and assignable roles can be added/removed. A place can be disabled, which causes any reaction to be removed and no role to be assigned. There are several configurations possible for each individual assignable role place. * `inline`: tries to display the embed as compact as possible and when this is disabled, every assignable role is displayed in a separate line. Default: `false` @@ -10,7 +10,7 @@ There are several configurations possible for each individual assignable role pl If there are reactions added by members, which are not used within an assignable role place, the reaction gets removed automatically. -If the emote is deleted, the assignable role place is still functional, but if you set it up again, it fail to do so. You need to remove the emote from the assignable role place via its ID. The ID will be displayed for the emotes which were removed. +If the emote is deleted, the assignable role place is still functional, but if you set it up again, it fails to do so. You need to remove the emote from the assignable role place via its ID. The ID will be displayed for the emotes which were removed. Deleting the actual role behind an assignable role causes the assignable role place to become non-functional: the added reaction will remain and reactions can still be added, but nothing will happen. Feature key: `assignableRole` diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/repository/SchedulerJobRepository.java b/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/repository/SchedulerJobRepository.java index 4c94bc394..734bf76d9 100644 --- a/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/repository/SchedulerJobRepository.java +++ b/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/repository/SchedulerJobRepository.java @@ -2,10 +2,8 @@ package dev.sheldan.abstracto.scheduling.repository; import dev.sheldan.abstracto.scheduling.model.database.SchedulerJob; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; /** * Repository responsible to access the stored job configuration in the database @@ -18,7 +16,6 @@ public interface SchedulerJobRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) List findAll(); } diff --git a/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/repository/TemplateRepository.java b/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/repository/TemplateRepository.java index c2d83a175..a074c931a 100644 --- a/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/repository/TemplateRepository.java +++ b/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/repository/TemplateRepository.java @@ -3,11 +3,9 @@ package dev.sheldan.abstracto.templating.repository; import dev.sheldan.abstracto.templating.model.database.Template; import org.jetbrains.annotations.NotNull; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.QueryHints; import org.springframework.lang.NonNull; import org.springframework.stereotype.Repository; -import javax.persistence.QueryHint; import java.util.Optional; /** @@ -17,10 +15,8 @@ import java.util.Optional; public interface TemplateRepository extends JpaRepository { @NotNull @Override - @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) Optional