You need a primary transaction manager that understands multiple transaction managers
otherwise the individual managers have no way to know about each others' transactions
or make sure you always specify the right one in @Transactional
can I make spring log the final configuration values (multiple sources, profiles merged) ?
@konstantinblaesi probably one of the actuators will report what you want (configprops, env)
@OrangeDog The thing is I dont need to understand multiples, I always specify it, but I cannot modify the third-party lib, so I am looking for a way to specify the txManager for the dependency or either exclude it at all as a last resort
What I said is still correct. Your primary manager will need some logic to decide which of the others it should delegate to (e.g. the one with a current transaction)
@OrangeDog I checked configprops, very cool thanks :)
@OrangeDog sorry, I am having difficulties to understand what you describe but I am forgetting something for sure. If I go to the third-party library, delete or edit the @Transactional annotation to use same txmanager than mylib, then at what point theres delegation?
I am assuming you don't want to or cannot edit the third-party library
exactly, but this is the behavior Id like to imitate, if i manage to do that, then do I need to do a composed manager?
if only I could do a @Transactional(propagation=ignoresubtransactions) or either something like @EnableTransactional(exclude=third-party.class)
and that is assuming that the current and expected behavior is that upon propagation=REQUIRED, transaction does support parent transaction but not parent's transactionmanager which I don't see it obvious at all
You need a primary transaction manager that understands multiple transaction managers or make sure you always specify the right one in @Transactional
What the aspect does is determine what transaction manager to call around the method. It doesn't do any tracking of transactions or managers itself.
A third option is a custom aspect that looks at the method's class/package to decide which transaction manager to use, but IMO that's more messy.
none of which has anything to do with propagation
all the solutions seem no trivial for a hotfix then :'(...
Are we sure theres no mechanism for marking a bean as not qualifiable to support transactions? I mean something like @EnableTransactions(exclude=thirdparty.class). I need the bean to be managed, but I want the @Transactional to be ignored
Anyway, thanks for your help james
there is not
perhaps you could do something really hacky with Bean(Definition)PostProcessors but the other solutions are all easier
@bvn13 Thanks. I'll give that a shot.
I have two models (kotlin data classes) linked through a manytomany relationship (pg database)
when I want to do A.allofB.size where allofB is the manytomany field that link A to B (through a join table)
I get in infinite recursion
I've dealt with infinite recursion when serializing my data (Json), but in that case I am not serializing anything…
(and the two manytomany sides are LAZY)
If I remove the manytomany field on the class B, then I can run that (but I cannot find all the A linked to an object B from an object of type B)
I can't find a way to have the both sides of that manytomany relation
(and I am NOT using serialization here)
I am wondering if it could be an issue with kotlin data classes that may want to hash the objects anyway
(as I am using sets)
(and that seem to be the case as turning them all into normal classes "solve" the issue)
Hello. Did anyone try to import multi maven spring boot project using intellij community edition ? Unable to find find projects recursively
any idea why /actuator/metrics/vm.threads.states gives me a 404 ? /actuator/metrics displays the list, but I cannot get the details for a metric?
Hi all, I want to test a special flyway migration step....
Me again, is someone maybe having an idea how I could solve my problem? Or is my question to special? Am I asking in the wrong channel? Would be nice to get some feedback! :)
The 2.2.2 -> 2.2.3 update appears to have broken properties loading via @ActiveProfiles("test"). Maybe #19556 but there are no commas involved...
hey all - is there any way to enable the use of 'block()' on a flux/mono with spring boot 2.2? trying to override a method in a third party lib..
As far as I can tell, @ActiveProfiles used to replace the profiles, but now it adds to them