java - 使用 spring data-jpa 映射本机查询结果集的更好方法
问题描述
如果我们需要在 Spring 数据中映射原生 sql 结果集。我们需要在下面创建NamedNativeQuery
。它运行良好,但如果我们有很长/很多查询,则很难在这里维护。
有没有其他方法可以实现这一目标?
import javax.persistence.Entity;
import javax.persistence.NamedNativeQuery;
import javax.persistence.Table;
@Entity
@NamedNativeQuery(name = "Todo.findByTitleIs”,
query="SELECT * FROM todos t WHERE t.title = 'title'",
resultSetMapping= "mapper"
)
@SqlResultSetMapping(
name = "mapper",
classes = @ConstructorResult(
targetClass = TodoDTO.class,
columns = {
..,
}))
@Table(name = "todos")
final class Todo {
}
解决方案
JPA 和 Hibernate 和其他类似框架的重点不是编写原生查询,然后打开连接等等......所有这些都归结为一个方法......我建议的是使用
pulblic interface JpaRepository<Todo, (the type of the Todo Id) >{
Optional<List<Todo>> findAllByTitle(String title);
}
JpaRepository 有很多优点,看看这件事:) 希望这会有所帮助......