2017-05-04 22 views
0

Springブートでサンプルアプリケーションを開発しました。私は1つの抽象クラス(Employee)と2つの具体的なサブクラス、例えばフルタイムとパートタイムの従業員を持っています。Spring RESTリポジトリに間違ったURLが表示される

好ましくは JPAプロバイダが作成した継承のタイプと3つのテーブルがあります。

また、EmployeeのRESTリポジトリを作成しました。以下のようになります。私は、ブラウザで**/employee** URLを呼び出すと

package com.caysever.repository; 

import com.caysever.model.Employee; 
import org.springframework.data.jpa.repository.JpaRepository; 
import org.springframework.data.rest.core.annotation.RepositoryRestResource; 

/** 
* Created by alican on 04.05.2017. 
*/ 
@RepositoryRestResource(path = "employee") 
public interface EmployeeRepository extends JpaRepository<Employee, Long>{ 
} 

、私は以下のようにコンテンツを取得しています:

{ 
    "fullTimeEmployees" : [ { 
     "name" : "Alican", 
     "surname" : "Akkuş", 
     "birthDay" : "2017-05-04T12:37:20.189+0000", 
     "gender" : "MALE", 
     "totalWorkingHoursOfWeek" : 40, 
     "_links" : { 
     "self" : { 
      "href" : "http://localhost:8080/fullTimeEmployee/1" 
     }, 
     "fullTimeEmployee" : { 
      "href" : "http://localhost:8080/fullTimeEmployee/1" 
     } 
     } 
    } 

私はなって、localhost:8080/fullTimeEmployee/1最初の従業員のために、このURLを呼び出したとき404ステータスコードが見つかりません。しかし、私はこのURLを持つ最初の従業員を取得しますlocalhost:8080/employee/1

あなたはGitHubの時にすべてのコードを見ることができます - >https://github.com/AlicanAkkus/jpa-inheritance-strategy

春RESTはfullTimeEmployee URLを生成し、なぜ?

答えて

0

私は@RepositoryRestResourceであなたが

@RepositoryRestResource(collectionResourceRel = "fullTimeEmployees", path = "fullTimeEmployees") 

で試してみてくださいまたはそのような代わりのデフォルト値の使用/ empoyee/fullTimeEmployee

として、エクスポートの詳細を変更していると思いますが使用したい場合は/従業員

@RepositoryRestResource(collectionResourceRel = "employee", path = "employee") 

パスは、このリソースをエクスポートするセグメントを設定し、collectionResourceRelは、gコレクションリソースへのリンクを生成します。

ご希望の方は

+0

こんにちはダニエル、返信ありがとうございます。あなたが言ったように私はそれをしましたが、何も変わりませんでした。それでも同じURLが生成されます。 –

関連する問題