To explain the situation a bit further, my use case was a class hierarchy of different localization approaches with generic “toString”-like methods that depending on the sub-class use different approaches to actually return a string in a given locale. One sub-class uses a database table to retrieve localizations, and only in this subclass do I even need transactions, for a simple read on the DB. With Exposed, I don’t really need to manually close the transaction, because at one point the TA scope will be left and then it closes, so that would not be a problem in that specific case. Also as you can imagine, this localization code is called all over the place and sometimes, I may already be inside a transaction, sometimes not. But its actually not a problem after all in my specific context, I added the class allowing me to open a new transaction on my database as context and just create the transaction inside the method (First I thought that would lead to problems, which wasn’t the case)
But thank you for explaining the overload approach, I’m sure I will need that soon enough 👍