我可以使用Spring projections来修改和持久化已有实体的内容吗?我的目标是只更新一个特定的字段。数据库中该行的任何其他字段都应保持不变。这可以通过投影来实现吗?
或者投影总是只读的?
public void update() {
PersonProjection p = repository.findByLastname("Doe");
p.setLastname("test");
repository.save(p); //how can I save only that field?
}
@Entity
public class Person {
@Id private long id;
private String firstname, lastname, age;
}
interface PersonProjection {
String getLastname();
void setLastname(String lastname);
}
interface PersonRepository extends CrudRepository<Person, Long> {
PersonProjection findByLastname(String lastname);
}https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections
发布于 2021-10-13 08:36:13
简而言之,不能,您不能使用Spring数据投影进行更新。
如果您不想事先获取实体,您可以做的是编写自定义查询来更新某些字段。
您也可以使用JPQL或Native查询进行更新。
https://stackoverflow.com/questions/69551025
复制相似问题