Skip to content

Commit ba4c22a

Browse files
authored
Merge pull request #19 from Varilx-Development/fix/resolvers
fix resolvers replacing
2 parents 8319193 + 8503e7a commit ba4c22a

4 files changed

Lines changed: 51 additions & 4 deletions

File tree

src/main/java/de/varilx/database/mongo/repository/MongoRepository.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,22 @@ public CompletableFuture<E> findByFieldNames(Map<String, Object> values) {
114114
});
115115
}
116116

117+
@Override
118+
public CompletableFuture<List<E>> findManyByFieldName(String name, Object value) {
119+
return this.findManyByFieldNames(Map.of(name, value));
120+
}
121+
122+
@Override
123+
public CompletableFuture<List<E>> findManyByFieldNames(Map<String, Object> values) {
124+
return CompletableFuture.supplyAsync(() -> {
125+
Bson filter = Filters.empty();
126+
for (Map.Entry<String, Object> entry : values.entrySet()) {
127+
filter = Filters.and(filter, Filters.eq(entry.getKey(), entry.getValue()));
128+
}
129+
return database.find(filter).into(new ArrayList<>());
130+
});
131+
}
132+
117133
private ID getId(E entity) {
118134
return ReflectionUtils.getId(entity, idClass);
119135
}

src/main/java/de/varilx/database/repository/Repository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,8 @@ public interface Repository<ENTITY, ID> {
2828

2929
CompletableFuture<ENTITY> findByFieldNames(Map<String, Object> values);
3030

31+
CompletableFuture<List<ENTITY>> findManyByFieldName(String name, Object value);
32+
33+
CompletableFuture<List<ENTITY>> findManyByFieldNames(Map<String, Object> values);
34+
3135
}

src/main/java/de/varilx/database/sql/repository/SQLRepository.java

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,7 @@ public CompletableFuture<E> findByFieldNames(Map<String, Object> entries) {
145145
session.beginTransaction();
146146
String hql = "FROM " + entityClass.getName() + (entries.size() > 0 ? " WHERE " : "");
147147

148-
hql += entries.entrySet().stream().map(entry -> {
149-
return entry.getKey() + " = :" +entry.getKey();
150-
}).collect(Collectors.joining(" AND "));
148+
hql += entries.keySet().stream().map(object -> object + " = :" + object).collect(Collectors.joining(" AND "));
151149

152150

153151
Query<E> query = session.createQuery(hql, entityClass);
@@ -163,4 +161,33 @@ public CompletableFuture<E> findByFieldNames(Map<String, Object> entries) {
163161
}
164162
});
165163
}
164+
165+
@Override
166+
public CompletableFuture<List<E>> findManyByFieldName(String name, Object value) {
167+
return this.findManyByFieldNames(Map.of(name, value));
168+
}
169+
170+
@Override
171+
public CompletableFuture<List<E>> findManyByFieldNames(Map<String, Object> entries) {
172+
return CompletableFuture.supplyAsync(() -> {
173+
try (Session session = this.sessionFactory.openSession()) {
174+
session.beginTransaction();
175+
String hql = "FROM " + entityClass.getName() + (entries.size() > 0 ? " WHERE " : "");
176+
177+
hql += entries.keySet().stream().map(object -> object + " = :" + object).collect(Collectors.joining(" AND "));
178+
179+
180+
Query<E> query = session.createQuery(hql, entityClass);
181+
182+
for (int i = 0; i < entries.size(); i++) {
183+
query.setParameter(entries.keySet().stream().toList().get(i), entries.values().stream().toList().get(i));
184+
}
185+
186+
List<E> result = query
187+
.getResultList();
188+
session.getTransaction().commit();
189+
return result;
190+
}
191+
});
192+
}
166193
}

src/main/java/de/varilx/utils/language/LanguageUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public Component getMessage(String path, TagResolver... args) {
2222
BaseAPI.get().getLogger().warning(path + " was not found in lang/" + BaseAPI.get().getLanguage() + ".yml");
2323
return Component.text("Path: " + path + " not found!");
2424
}
25-
return MiniMessage.miniMessage().deserialize("<!i><gray>" + raw, args);
25+
return MiniMessage.miniMessage().deserialize("<!i><gray>" + raw, initializeLanguageAndResolvers(args).toArray(TagResolver[]::new));
2626
}
2727

2828
public List<Component> getMessageList(String path, TagResolver... args) {

0 commit comments

Comments
 (0)