Improve JdbcChatMemoryRepository to simplify findConversationIds()
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
This commit is contained in:
committed by
Mark Pollack
parent
4ae26547db
commit
bbc2bbf661
@@ -77,14 +77,7 @@ public final class JdbcChatMemoryRepository implements ChatMemoryRepository {
|
||||
|
||||
@Override
|
||||
public List<String> findConversationIds() {
|
||||
List<String> conversationIds = this.jdbcTemplate.query(this.dialect.getSelectConversationIdsSql(), rs -> {
|
||||
var ids = new ArrayList<String>();
|
||||
while (rs.next()) {
|
||||
ids.add(rs.getString(1));
|
||||
}
|
||||
return ids;
|
||||
});
|
||||
return conversationIds != null ? conversationIds : List.of();
|
||||
return this.jdbcTemplate.queryForList(dialect.getSelectConversationIdsSql(), String.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -73,6 +73,8 @@ public abstract class AbstractJdbcChatMemoryRepositoryIT {
|
||||
|
||||
this.chatMemoryRepository.saveAll(conversationId, List.of(message));
|
||||
|
||||
assertThat(chatMemoryRepository.findConversationIds()).contains(conversationId);
|
||||
|
||||
// Use dialect to get the appropriate SQL query
|
||||
JdbcChatMemoryRepositoryDialect dialect = JdbcChatMemoryRepositoryDialect
|
||||
.from(this.jdbcTemplate.getDataSource());
|
||||
@@ -96,6 +98,8 @@ public abstract class AbstractJdbcChatMemoryRepositoryIT {
|
||||
|
||||
this.chatMemoryRepository.saveAll(conversationId, messages);
|
||||
|
||||
assertThat(chatMemoryRepository.findConversationIds()).contains(conversationId);
|
||||
|
||||
// Use dialect to get the appropriate SQL query
|
||||
JdbcChatMemoryRepositoryDialect dialect = JdbcChatMemoryRepositoryDialect
|
||||
.from(this.jdbcTemplate.getDataSource());
|
||||
|
||||
@@ -29,7 +29,8 @@ import org.springframework.test.context.jdbc.Sql;
|
||||
* @author Mark Pollack
|
||||
*/
|
||||
@SpringBootTest(classes = JdbcChatMemoryRepositoryMysqlIT.TestConfiguration.class)
|
||||
@TestPropertySource(properties = { "spring.datasource.url=jdbc:tc:mariadb:10.3.39:///" })
|
||||
@TestPropertySource(properties = { "spring.datasource.url=jdbc:tc:mariadb:10.3.39:///",
|
||||
"spring.datasource.hikari.maximum-pool-size=20", "spring.datasource.hikari.minimum-idle=5" })
|
||||
@Sql(scripts = "classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-mariadb.sql")
|
||||
class JdbcChatMemoryRepositoryMysqlIT extends AbstractJdbcChatMemoryRepositoryIT {
|
||||
|
||||
|
||||
@@ -46,7 +46,8 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Mark Pollack
|
||||
*/
|
||||
@SpringBootTest(classes = JdbcChatMemoryRepositoryPostgresqlIT.TestConfiguration.class)
|
||||
@TestPropertySource(properties = "spring.datasource.url=jdbc:tc:postgresql:17:///")
|
||||
@TestPropertySource(properties = { "spring.datasource.url=jdbc:tc:postgresql:17:///",
|
||||
"spring.datasource.hikari.maximum-pool-size=20", "spring.datasource.hikari.minimum-idle=5" })
|
||||
@Sql(scripts = "classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-postgresql.sql")
|
||||
class JdbcChatMemoryRepositoryPostgresqlIT extends AbstractJdbcChatMemoryRepositoryIT {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user