mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-14 11:48:16 +00:00
introduced eh-cache as a caching provider instead of caffeine to be used in hibernate (only ram cache is currently possible)
added caching configuration for 2nd level caching in hibernate added command to clear hibernate caches changed some interfaces so the api looks a bit more consistent (return the created/updated value) split user management and user in server management added try catch block to message received listener execution, to make them independent moved some feature flag methods to the feature flag service bean instead of the management service, as they used the FeatureEnum directly fixed feature disable text always rendering removed some non embed logging fixed message embed template added exception logging to message embedding
This commit is contained in:
@@ -4,8 +4,10 @@ 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.util.Objects;
|
||||
|
||||
@Entity
|
||||
@Table(name="embedded_message")
|
||||
@@ -14,6 +16,8 @@ import javax.persistence.*;
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
@Cacheable
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
public class EmbeddedMessage {
|
||||
|
||||
@Getter
|
||||
@@ -52,4 +56,24 @@ public class EmbeddedMessage {
|
||||
@Column
|
||||
@Id
|
||||
private Long embeddingMessageId;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
EmbeddedMessage that = (EmbeddedMessage) o;
|
||||
return Objects.equals(embeddedUser, that.embeddedUser) &&
|
||||
Objects.equals(embeddingUser, that.embeddingUser) &&
|
||||
Objects.equals(embeddedServer, that.embeddedServer) &&
|
||||
Objects.equals(embeddedChannel, that.embeddedChannel) &&
|
||||
Objects.equals(embeddedMessageId, that.embeddedMessageId) &&
|
||||
Objects.equals(embeddingServer, that.embeddingServer) &&
|
||||
Objects.equals(embeddingChannel, that.embeddingChannel) &&
|
||||
Objects.equals(embeddingMessageId, that.embeddingMessageId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(embeddedUser, embeddingUser, embeddedServer, embeddedChannel, embeddedMessageId, embeddingServer, embeddingChannel, embeddingMessageId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,11 @@ 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.time.Instant;
|
||||
import java.util.Objects;
|
||||
|
||||
@Entity
|
||||
@Table(name="reminder")
|
||||
@@ -15,6 +17,8 @@ import java.time.Instant;
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
@Cacheable
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
public class Reminder {
|
||||
|
||||
@Id
|
||||
@@ -52,4 +56,24 @@ public class Reminder {
|
||||
@Getter
|
||||
private boolean reminded;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
Reminder reminder = (Reminder) o;
|
||||
return reminded == reminder.reminded &&
|
||||
Objects.equals(id, reminder.id) &&
|
||||
Objects.equals(remindedUser, reminder.remindedUser) &&
|
||||
Objects.equals(messageId, reminder.messageId) &&
|
||||
Objects.equals(channel, reminder.channel) &&
|
||||
Objects.equals(server, reminder.server) &&
|
||||
Objects.equals(reminderDate, reminder.reminderDate) &&
|
||||
Objects.equals(targetDate, reminder.targetDate) &&
|
||||
Objects.equals(text, reminder.text);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, remindedUser, messageId, channel, server, reminderDate, targetDate, text, reminded);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,12 @@ package dev.sheldan.abstracto.utility.models.database;
|
||||
import dev.sheldan.abstracto.core.models.database.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Entity
|
||||
@Table(name="starboard_post")
|
||||
@@ -15,6 +17,8 @@ import java.util.List;
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
@Cacheable
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
public class StarboardPost {
|
||||
|
||||
@Id
|
||||
@@ -52,6 +56,7 @@ public class StarboardPost {
|
||||
orphanRemoval = true,
|
||||
cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
@JoinColumn(name="postId")
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
private List<StarboardPostReaction> reactions;
|
||||
|
||||
@Column
|
||||
@@ -66,4 +71,26 @@ public class StarboardPost {
|
||||
}
|
||||
return this.reactions.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
StarboardPost post = (StarboardPost) o;
|
||||
return ignored == post.ignored &&
|
||||
Objects.equals(id, post.id) &&
|
||||
Objects.equals(author, post.author) &&
|
||||
Objects.equals(starboardMessageId, post.starboardMessageId) &&
|
||||
Objects.equals(postMessageId, post.postMessageId) &&
|
||||
Objects.equals(starboardChannel, post.starboardChannel) &&
|
||||
Objects.equals(sourceChanel, post.sourceChanel) &&
|
||||
Objects.equals(reactionCount, post.reactionCount) &&
|
||||
Objects.equals(reactions, post.reactions) &&
|
||||
Objects.equals(starredDate, post.starredDate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, author, starboardMessageId, postMessageId, starboardChannel, sourceChanel, reactionCount, reactions, starredDate, ignored);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,10 @@ package dev.sheldan.abstracto.utility.models.database;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Objects;
|
||||
|
||||
@Entity
|
||||
@Table(name="starboard_post_reaction")
|
||||
@@ -12,6 +14,8 @@ import javax.persistence.*;
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
@Cacheable
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
public class StarboardPostReaction {
|
||||
|
||||
@Id
|
||||
@@ -26,4 +30,18 @@ public class StarboardPostReaction {
|
||||
@JoinColumn(name = "postId", nullable = false)
|
||||
private StarboardPost starboardPost;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
StarboardPostReaction that = (StarboardPostReaction) o;
|
||||
return Objects.equals(id, that.id) &&
|
||||
Objects.equals(reactor, that.reactor) &&
|
||||
Objects.equals(starboardPost, that.starboardPost);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, reactor, starboardPost);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,13 +8,15 @@ import lombok.*;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.time.Instant;
|
||||
import java.util.Objects;
|
||||
|
||||
@Entity
|
||||
@Table(name="suggestion")
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Getter @Setter
|
||||
@Getter
|
||||
@Setter
|
||||
public class Suggestion {
|
||||
|
||||
@Id
|
||||
@@ -48,4 +50,22 @@ public class Suggestion {
|
||||
@Enumerated(EnumType.STRING)
|
||||
private SuggestionState state;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
Suggestion that = (Suggestion) o;
|
||||
return Objects.equals(id, that.id) &&
|
||||
Objects.equals(suggester, that.suggester) &&
|
||||
Objects.equals(messageId, that.messageId) &&
|
||||
Objects.equals(channel, that.channel) &&
|
||||
Objects.equals(server, that.server) &&
|
||||
Objects.equals(suggestionDate, that.suggestionDate) &&
|
||||
state == that.state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, suggester, messageId, channel, server, suggestionDate, state);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user