package com.example.demo.repository;
import com.example.demo.entity.Foo;
import org.springframework.data.jpa.repository.*;
import org.springframework.data.repository.query.Param;
import javax.transaction.Transactional;
import java.util.List;
public interface FooRepository extends JpaRepository<Foo, Long>, JpaSpecificationExecutor<Foo> {
List<Foo> findByName(String name);
@Transactional
@Query("update Foo set name = :name where id = : id")
void updateName(@Param("id") Long id, @Param("name") String name);
}
package com.example.demo.service;
import com.example.demo.repository.BarRepository;
import com.example.demo.repository.FooRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
@Service
public class CompositeService {
@Autowired
private FooRepository fooRepository;
@Autowired
private BarRepository barRepository;
@Transactional
public void compositeMethod() {
fooRepository.doSomething();
barRepository.doSomething();
}
}