Skip to content

Commit bbc2bbf

Browse files
quaffmarkpollack
authored andcommitted
Improve JdbcChatMemoryRepository to simplify findConversationIds()
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
1 parent 4ae2654 commit bbc2bbf

File tree

4 files changed

+9
-10
lines changed

4 files changed

+9
-10
lines changed

memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepository.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,7 @@ private JdbcChatMemoryRepository(DataSource dataSource, JdbcChatMemoryRepository
7777

7878
@Override
7979
public List<String> findConversationIds() {
80-
List<String> conversationIds = this.jdbcTemplate.query(this.dialect.getSelectConversationIdsSql(), rs -> {
81-
var ids = new ArrayList<String>();
82-
while (rs.next()) {
83-
ids.add(rs.getString(1));
84-
}
85-
return ids;
86-
});
87-
return conversationIds != null ? conversationIds : List.of();
80+
return this.jdbcTemplate.queryForList(dialect.getSelectConversationIdsSql(), String.class);
8881
}
8982

9083
@Override

memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/AbstractJdbcChatMemoryRepositoryIT.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ void saveMessagesSingleMessage(String content, MessageType messageType) {
7373

7474
this.chatMemoryRepository.saveAll(conversationId, List.of(message));
7575

76+
assertThat(chatMemoryRepository.findConversationIds()).contains(conversationId);
77+
7678
// Use dialect to get the appropriate SQL query
7779
JdbcChatMemoryRepositoryDialect dialect = JdbcChatMemoryRepositoryDialect
7880
.from(this.jdbcTemplate.getDataSource());
@@ -96,6 +98,8 @@ void saveMessagesMultipleMessages() {
9698

9799
this.chatMemoryRepository.saveAll(conversationId, messages);
98100

101+
assertThat(chatMemoryRepository.findConversationIds()).contains(conversationId);
102+
99103
// Use dialect to get the appropriate SQL query
100104
JdbcChatMemoryRepositoryDialect dialect = JdbcChatMemoryRepositoryDialect
101105
.from(this.jdbcTemplate.getDataSource());

memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryMysqlIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
* @author Mark Pollack
3030
*/
3131
@SpringBootTest(classes = JdbcChatMemoryRepositoryMysqlIT.TestConfiguration.class)
32-
@TestPropertySource(properties = { "spring.datasource.url=jdbc:tc:mariadb:10.3.39:///" })
32+
@TestPropertySource(properties = { "spring.datasource.url=jdbc:tc:mariadb:10.3.39:///",
33+
"spring.datasource.hikari.maximum-pool-size=20", "spring.datasource.hikari.minimum-idle=5" })
3334
@Sql(scripts = "classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-mariadb.sql")
3435
class JdbcChatMemoryRepositoryMysqlIT extends AbstractJdbcChatMemoryRepositoryIT {
3536

memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryPostgresqlIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@
4646
* @author Mark Pollack
4747
*/
4848
@SpringBootTest(classes = JdbcChatMemoryRepositoryPostgresqlIT.TestConfiguration.class)
49-
@TestPropertySource(properties = "spring.datasource.url=jdbc:tc:postgresql:17:///")
49+
@TestPropertySource(properties = { "spring.datasource.url=jdbc:tc:postgresql:17:///",
50+
"spring.datasource.hikari.maximum-pool-size=20", "spring.datasource.hikari.minimum-idle=5" })
5051
@Sql(scripts = "classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-postgresql.sql")
5152
class JdbcChatMemoryRepositoryPostgresqlIT extends AbstractJdbcChatMemoryRepositoryIT {
5253

0 commit comments

Comments
 (0)