Examples

Report a typo

Which of the following examples will work correctly and keep our data consistent? Pay attention to the access modifiers of the methods.

Java
  1. @Transactional
    private void doTransaction() {
        var person = new Record();
        person.setName("Mike");
        repository.save(person);
    
        if (person.getId() > 0) {
            throw new RuntimeException();
        }
    
        person.setName("Bob");
        repository.save(person);
    }
  2. public void doTransaction() {
        var person = new Record();
        person.setName("Mike");
        repository.save(person);
    
        @Transactional
        if (person.getId() > 0) {
            throw new RuntimeException();
        }
    
        person.setName("Bob");
        repository.save(person);
    }
  3. @Transactional(readOnly = false)
    public void doTransaction() {
        var person = new Record();
        person.setName("Mike");
        repository.save(person);
    
        if (person.getId() > 0) {
            throw new RuntimeException();
        }
    
        person.setName("Bob");
        repository.save(person);
    }
  4. @Transactional(readOnly = true)
    public void doTransaction() {
        var person = new Record();
        person.setName("Mike");
        repository.save(person);
    
        if (person.getId() > 0) {
            throw new RuntimeException();
        }
    
        person.setName("Bob");
        repository.save(person);
    }
Kotlin
  1. @Transactional
    private fun doTransaction() {
        val person = Record()
        person.name = "Mike"
        repository.save(person)
        
        if (person.getId() > 0) {
            throw RuntimeException()
        }
        
        person.name = "Bob"
        repository.save(person)
    }
  2. fun doTransaction() {
        val person = new Record();
        person.name = "Mike"
        repository.save(person)
    
        @Transactional
        if (person.getId() > 0) {
            throw RuntimeException()
        }
    
        person.name = "Bob"
        repository.save(person);
    }
  3. @Transactional(readOnly = false)
    fun doTransaction() {
        val person = Record()
        person.name = "Mike"
        repository.save(person)
        
        if (person.getId() > 0) {
            throw RuntimeException()
        }
        
        person.name = "Bob"
        repository.save(person)
    }
  4. @Transactional(readOnly = true)
    fun doTransaction() {
        val person = Record()
        person.name = "Mike"
        repository.save(person)
        
        if (person.getId() > 0) {
            throw RuntimeException()
        }
        
        person.name = "Bob"
        repository.save(person)
    }
Select one or more options from the list
___

Create a free account to access the full topic