Представим, что у нас есть таблица-книга с 10 столбцами, 2 из них — это идентификатор и имя. Теперь мы хотим восстановить оттуда только имя. Так лучше:
Код: Выделить всё
//Repo
public interface boookRepo extends JpaRepository {
@Query(value = "select name from books where bookId = :bookId", nativeQuery = true)
String findNameByBookId(String bookId);
}
//Book
@Entity
@Table(schema = "bookShelf", name = "book")
@Getter
@Setter
@Data
@IdClass(bookId.class)
public class Book {
@Id
private String bookId;
private String name;
}
//service
@Service
@Log4j2
public class BookServ implements IBook {
@Autowired
private BookRepository bookrepo;
@Override
public String getName(String bookId) {
return bookrepo.findNameByBookId(bookId);
}
Код: Выделить всё
//repo
public interface boookRepo extends JpaRepository {
Book findFirstByBookId(String bookId);
}
//entity
@Entity
@Table(schema = "bookShelf", name = "book")
@Getter
@Setter
@Data
@IdClass(bookId.class)
public class Book {
@Id
private String bookId;
private String name;
}
//service
@Service
@Log4j2
public class BookServ implements IBook {
@Autowired
private BookRepository bookrepo;
@Override
public String getName(String bookId) {
return bookrepo.findNameByBookId(bookId).getName();
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -is-better