Skip to content

Commit 1047ed1

Browse files
committed
PlatformTransactionManager should be optional for JdbcChatMemoryRepository
Before this commit, `PlatformTransactionManager` is required here, use `Optional` wrapper to fix it. Signed-off-by: Yanming Zhou <[email protected]>
1 parent b219c21 commit 1047ed1

File tree

1 file changed

+6
-10
lines changed
  • memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc

1 file changed

+6
-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: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.time.Instant;
2121
import java.util.ArrayList;
2222
import java.util.List;
23+
import java.util.Optional;
2324
import java.util.concurrent.atomic.AtomicLong;
2425

2526
import javax.sql.DataSource;
@@ -37,11 +38,6 @@
3738
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
3839
import org.springframework.lang.Nullable;
3940
import org.springframework.transaction.PlatformTransactionManager;
40-
import org.springframework.transaction.TransactionDefinition;
41-
import org.springframework.transaction.TransactionException;
42-
import org.springframework.transaction.TransactionStatus;
43-
import org.springframework.transaction.support.AbstractPlatformTransactionManager;
44-
import org.springframework.transaction.support.DefaultTransactionStatus;
4541
import org.springframework.transaction.support.TransactionTemplate;
4642
import org.springframework.util.Assert;
4743
import org.slf4j.Logger;
@@ -54,6 +50,7 @@
5450
* @author Thomas Vitale
5551
* @author Linar Abzaltdinov
5652
* @author Mark Pollack
53+
* @author Yanming Zhou
5754
* @since 1.0.0
5855
*/
5956
public class JdbcChatMemoryRepository implements ChatMemoryRepository {
@@ -64,16 +61,14 @@ public class JdbcChatMemoryRepository implements ChatMemoryRepository {
6461

6562
private final JdbcChatMemoryRepositoryDialect dialect;
6663

67-
private static final Logger logger = LoggerFactory.getLogger(JdbcChatMemoryRepository.class);
68-
6964
private JdbcChatMemoryRepository(DataSource dataSource, JdbcChatMemoryRepositoryDialect dialect,
70-
PlatformTransactionManager txManager) {
65+
Optional<PlatformTransactionManager> txManager) {
7166
Assert.notNull(dataSource, "dataSource cannot be null");
7267
Assert.notNull(dialect, "dialect cannot be null");
7368
this.jdbcTemplate = new JdbcTemplate(dataSource);
7469
this.dialect = dialect;
7570
this.transactionTemplate = new TransactionTemplate(
76-
txManager != null ? txManager : new DataSourceTransactionManager(dataSource));
71+
txManager.orElseGet(() -> new DataSourceTransactionManager(dataSource)));
7772
}
7873

7974
@Override
@@ -200,7 +195,8 @@ public Builder transactionManager(PlatformTransactionManager txManager) {
200195
public JdbcChatMemoryRepository build() {
201196
DataSource effectiveDataSource = resolveDataSource();
202197
JdbcChatMemoryRepositoryDialect effectiveDialect = resolveDialect(effectiveDataSource);
203-
return new JdbcChatMemoryRepository(effectiveDataSource, effectiveDialect, this.platformTransactionManager);
198+
return new JdbcChatMemoryRepository(effectiveDataSource, effectiveDialect,
199+
Optional.ofNullable(this.platformTransactionManager));
204200
}
205201

206202
private DataSource resolveDataSource() {

0 commit comments

Comments
 (0)