используя репозиторий данных Spring, если нет первичного ключа - PullRequest
2 голосов
/ 14 июня 2019

Я работаю над проектом, в котором у меня есть вид таблицы базы данных, представленной другой командой, и другие команды также используют это представление.Я использую пружинные данные 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 Ответ

1 голос
/ 14 июня 2019

Итак, Entity, JPA и Spring Data требуют, чтобы у вас был идентификатор, то есть, как сущность была найдена или обновлена.

[ОБНОВЛЕНО] @tintin, если garageCode уникален в соответствии с вашим комментарием, выможно добиться так:

@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>{
}
...