написание класса репозитория для извлечения данных из 3 связанных таблиц - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть 3 таблицы, а именно

Port_Register

Mobile_Number(Primary Key) | Gaining_Code(Foreign Key to Telecom_Codes) | Losing_Codes

Telecom_Codes

Telecom_Code(Primary Key) | Contact_Provider_Id(Foreign_Key to Contact_Provider)

Contact_Provider

Contact_Provider_Id | Contact_Name

Gaining_Code и Losing_Code на самом деле Telecom_Code

для следующего сценария я написал классы сущностей, которые выглядят следующим образом

@Entity
@Table(name="Port_Register")
public class Port_Register {
    @Id
    @Column(name="MOBILE_NUMBER")
    private String mobile_Number;

    @ManyToOne
    @JoinColumn(name="GAINING_CODE",referencedColumnName="TELECOM_CODE")
    private TelecomCodes gainingCode;

    @ManyToOne
    @JoinColumn(name="LOSING_CODE",referencedColumnName="TELECOM_CODE")
    private TelecomCodes losingCSPCode;
}


    @Entity
    @Table(name="Telecom_Codes")
    public class TelecomCodes {

        @Id
        @Column(name="TELECOM_CODE")
        private String telecomCode;

        @OneToOne
        @Column(name = "CONTACT__Provider_Id")
        private ContactProvider contactProviderID;
    }
    @Entity
    @Table(name="ContactProvider")
    public class ContactProvider {
        @Column(name="CONTACT__Provider_Id")
        private String contactProviderId;

        @Column(name="CONTACT__Provider_NAME")
        private String ContactProviderName;
    }

Мне нужно написать функцию в классе репозитория для извлечения данных в формате

MobileNumber|Gaining_code|LosingCode| Gaining_provider_Name| Losing_provider_Name

Все, что я знаю, для crud - это предопределенный интерфейс хранилища, функция которого знакомится с реализацией abt во время выполнения.

, поэтому я создал хранилище, похожее на

public interface PortOutRegisterRepository  extends CrudRepository< Ported_Register,String> {

//  public void store(T t);

//  public T retrieve(int id);

    //  public T delete(int id);
}

Я думал, что позвоню

PortOutRegisterRepository customRep;
List<Ported_Register> m=new ArrayList<Ported_Register>();
m=customRep.findall();

, и тогда я смогу использовать это для получения индивидуальной информации

 for(Ported_Register p:m)
    {
    p.getGainingCode().getContactProviderID().getContactName();
    }

Но это совершенно неправильно.

Пожалуйстапомогите мне, как мне написать репозиторий для этого.

Любая помощь приветствуется

1 Ответ

0 голосов
/ 15 ноября 2018

CrudRepository позволяет вам найти элемент, передав его идентификатор. findById

Затем вы можете получить индивидуальную информацию, которую вы хотите от объекта.

Если вы хотите найти все элементы в таблице, вы также можете использовать findAll() метод FindAll

edit: Вы должны убедиться, что в других таблицах есть ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...