如果没有主键,则使用spring data jpa存储库

时间:2019-06-14 13:43:44

标签: spring hibernate spring-data-jpa spring-data

我正在一个项目中工作,在该项目中,我有一个由其他团队公开的数据库表的视图,其他团队也正在使用该视图。 我在项目中使用spring数据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 中应该输入什么值。

1 个答案:

答案 0 :(得分:1)

因此,Entity,JPA和Spring Data需要您具有ID,这就是查找或更新实体的方式。

[更新] @tintin如果根据您的评论车库代码是唯一的,则可以这样实现:

@Entity
@Table(name="mv_garage_master")
public class GarageMaster implements Serializable {
    @Id
    @Column(name="GARAGE_CODE")
    private String garageCode;

    @Column(name="GARAGE_NAME")
    private String garageName;

    @Column(name="GARAGE_BRANCH")
    private String garageBranch; 
}

还有存储库:

@Repository
public interface GarageMasterRepository extends JpaRepository<GarageMaster,String>{
}