2020import java .time .Instant ;
2121import java .util .ArrayList ;
2222import java .util .List ;
23+ import java .util .Optional ;
2324import java .util .concurrent .atomic .AtomicLong ;
2425
2526import javax .sql .DataSource ;
3738import org .springframework .jdbc .datasource .DataSourceTransactionManager ;
3839import org .springframework .lang .Nullable ;
3940import 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 ;
4541import org .springframework .transaction .support .TransactionTemplate ;
4642import org .springframework .util .Assert ;
4743import org .slf4j .Logger ;
5450 * @author Thomas Vitale
5551 * @author Linar Abzaltdinov
5652 * @author Mark Pollack
53+ * @author Yanming Zhou
5754 * @since 1.0.0
5855 */
5956public 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