Skip to content

Error flush transaction #15224

@Noirtam

Description

@Noirtam

Expected Behavior

Since migration 6 (maybe 7.0.0-RC1) to 7.0.0, I have an error hibernate when I'm trying save two domains in the same transaction :

Utilisateur.withNewTransaction {
            //Creation utilisateur admin
            if (Utilisateur.countByUsername("test") == 0) {
                Role roleAdmin = Role.findByAuthority("ROLE_ADMIN")
                Utilisateur userAdmin = new Utilisateur(username: "test", password: "test", email: "test@domain.fr").save(flush: true, failOnError: true)
                new UtilisateurRole(utilisateur: userAdmin, role: roleAdmin).save(flush: true, failOnError: true)
            }
        }

Error :


org.springframework.orm.hibernate5.HibernateObjectRetrievalFailureException: No row with the given identifier exists: [org.monprojet.Utilisateur#13]
        at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:238)

Actual Behaviour

No response

Steps To Reproduce

  1. Try to create new relation between two domain in Domain.withNewTransaction
  2. Test OK ✅
  3. Modify UtilisateurRole to add constraints with withNewSession
  4. FAIL ❌

Environment Information

  • Database postgres
  • jdbc connector version : 42.7.8

Example Application

https://github.com/Noirtam/grails-grails702-issue15224

Version

7.0.0 / 7.0.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions