
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

@Entity
public class User {
@Id
@GeneratedValue
private Long id;
private String name;
// constructors, getters, setters
}
public interface UserRepository extends CrudRepository<User, Long> {
List<User> findByName(String name);
}

@Autowired
private UserRepository userRepository;
public void createUser(String name) {
User user = new User(name);
userRepository.save(user);
}

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=user
spring.datasource.password=password

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true


@Query(value = "SELECT * FROM users WHERE name = ?1", nativeQuery = true)
List<User> findByName(String name);

List<User> findByNameAndEmail(String name, String email);
List<User> findByNameIgnoreCase(String name);

Page<User> findByName(String name, Pageable pageable);
List<User> findByNameOrderByEmailDesc(String name);

@Modifying
@Query("UPDATE User u SET u.email = ?1 WHERE u.name = ?2")
int setEmailForName(String email, String name);
