AFAIK för att ta bort de extra frågorna, ta bort alla dina modifierare till din @Transactional
anteckningar. Priset du betalar för att begränsa din isoleringsnivå till READ_COMMITED
är att Hibernate kommer att behöva utföra extra frågor för att avgöra om databasen är i ett smutsigt tillstånd. I 90 % av fallen är dessa modifierare onödiga. Hibernate är mycket bra på att se till att dina data blir rena utan att du försöker lägga till dessa begränsningar.
Om det är absolut nödvändigt för dig att se till att din isolering är READ_COMMITTED
, du kan inte göra något åt de extra frågorna.
Flytta till en StatelessSession
att bara bli av med dessa frågor är en dålig idé av exakt den anledningen du påpekade. Egentligen den enda giltiga anledningen till att använda en StatelessSession
är för stora partier av data som du vet inte kommer att läsas medan infogningen sker.