Skip to content

Conversation

@vim89
Copy link

@vim89 vim89 commented Nov 18, 2025

Add database transaction decorator with direct ScalaSql dependency.

Features:

  • @cask.database.transactional decorator for automatic transaction management
  • Direct compile-time dependency on ScalaSql (no ClassTag reflection)
  • Requires Scala 3.7+ with named tuples support
  • Auto-commits on success, rolls back on exceptions or HTTP 4xx/5xx responses

Changes:

  • Add scalasql-namedtuples dependency for Scala 3.7+
  • Hardcode ScalaSql DbClient type (no generic type parameter)
  • Restore scalasql.DbApi.Txn import in examples for cleaner code
  • Add stub implementations for Scala 2.12/2.13 compatibility
  • Update todoDb examples to demonstrate transaction usage

Review Feedback Addressed:

  • Removed ClassTag and reflection-based approach
  • Hardcoded ScalaSql dependency as suggested
  • Restored DbApi.Txn import to reduce verbosity

Addresses database aspect of #181 and #183

@vim89
Copy link
Author

vim89 commented Nov 18, 2025

I'm checking the issues

@vim89 vim89 force-pushed the feature/database-only branch from 42c19d0 to 6847d6c Compare November 18, 2025 11:06
@vim89 vim89 force-pushed the feature/database-only branch from 6847d6c to c580afc Compare November 18, 2025 11:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant