【发布时间】:2019-06-14 13:43:44
【问题描述】:
我正在从事一个项目,在该项目中,我可以查看其他团队公开的数据库表,并且其他团队也在使用该视图。 我在项目中使用spring data jpa..
向我们展示的视图没有主键。
如果没有主键,我的 ViewRepository 接口应该如何声明..
我有一个包含许多值的视图,我创建的实体如下
package com.mf.acrs.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name="mv_garage_master")
public class GarageMaster {
@Column(name="GARAGE_CODE")
private String garageCode;
@Column(name="GARAGE_NAME")
private String garageName;
@Column(name="GARAGE_BRANCH")
private String garageBranch;
}
仓库界面如下:
package com.mf.acrs.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.mf.acrs.model.GarageMaster;
@Repository
public interface GarageMasterRepository extends JpaRepository<GarageMaster,ID>{
}
我的问题是上面界面中的ID应该输入什么值..
【问题讨论】:
-
嗨@tin_tin,我为你添加了一个可能的解决方案。
-
如果是视图,那么您可以通过一个简单的技巧来解决这个问题,您可以在视图中添加唯一标识符作为当前行号,然后您可以在 Spring Data 实体中使用行号
-
@Govind Parashar 的这个建议是好的和危险的。因为它是提供的视图,所以条目可以更改,并且由于数据库中的插入,ID 为 4 的记录现在可以是不同的条目。
-
@Brother : 同意 从设计的角度来看它很糟糕。查看一般只读。如果你没有唯一的列,那么你就无法计算出复合键
标签: spring hibernate spring-data-jpa spring-data