gpt4 book ai didi

java - 使用 CrudRepository 从 View 获取数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:15 25 4
gpt4 key购买 nike

对于这个问题,我不是在寻找解决方案,而是在寻找一个可以让自己前进的方向,因此不共享任何代码。

我正在准备一个 REST API,我在本地设置了 postgresql 数据库,它有 2 个表和来自这 2 个表的一个 View 。

通常当我想从数据库中获取任何数据时,我会使用以下代码(为了清楚起见):

DataRepository 类:

public interface DataRepository extends CrudRepository<Data, String>{}

数据服务类:

@Service
public class DataService {
@Autowired
private DataRepository repo;
public Data getData(String id){
return repo.findById(id).orElse(null);
}
}

数据 Controller 类:

@RestController
public class DataController{
@Autowired
private DataService service;
@RequestMapping("/{id}")
public Data getData(String id){
return service.getData(id);
}
}

数据类:

@Entity
public class Data{
@Id
private String id;
private String name;

//respective getter and setter methods
}

现在我想从 View 中检索数据,那么应该采用什么方法呢?

我们应该使用相同的方法来创建模型、服务、Ctonroller 和存储库类吗?

我们可以使用 CrudRepository 来实现同样的目的吗?

我搜索了很多地方,但没有找到任何有用的东西。

如果有人对此有任何线索,请告诉我。

最佳答案

CrudRepository 的读取方法应该可以很好地处理 View 。对于写法,view需要是可更新的enter link description here .

如果你只想读取,而不是写入存储库,你可以通过复制 CrudRepository 的源代码并删除所有写入来创建一个 ReadOnlyRepository方法。

请注意,JPA 仍将尝试保留对托管实体所做的更改。为避免这种情况并避免脏检查的成本,您可以 mark your entities as immutable如果您使用的是 Hibernate。

关于java - 使用 CrudRepository 从 View 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54652224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com