Spring-data Hibernate などを使用して REST アプリケーションに取り組んでいます。すべての基本的なアクションをセットアップしましたが、今は何か特定のことをしたいと思っています。データベース内の別のテーブルへの外部キーを持つアイテムのリストを取得すると、休止状態はその外部キーの行全体を返します。例えば:
[ {
"id":1,
"school": {"id":1, "name":"De regenboog", password":"800e30e9bb3b82ce955a127650d835d0", "street":"Plantaanstraat", "number":"2", "zipCode":"1234AS", "city":"Amsterdam", "contactName":"Arends", "contactPhoneNumber":"06-45648466", "contactEmail":"arends@regenboog.nl"},
"name":"Groep",
"dateCreated":"2012-04-25"
}
]
(ちなみに全て架空のデータです)
今の問題は、学校が完全に返還されることを望んでいないということです. school_id を表示したいだけです。Web を検索し、「サービス レベル マッピング」に関するいくつかの記事を読みましたが、例を見つけることができませんでした。私は自分のアプリケーションを
コントローラ -> サービス -> dao -> リポジトリ
設定。
皆さんが私を助けてくれることを願っています! (さらにソースコードが必要な場合はお知らせください)。
どうもありがとう
編集
追加したいのは、MySql テーブルが次のようになっていることです。
ID | SCHOOL_ID | 名前 | DATE_CREATED
したがって、私が返したいのは、オブジェクトの学校ではなく、プレーンな school_id だけです(この状況では)
EDIT2 @Dandy の回答に取り組んでおり、現在持っているコードを表示したい:
@ManyToOne
@JoinColumn(name = "SCHOOL_ID")
private School school;
@Column(name = "SCHOOL_ID", insertable = false, updatable = false)
private long schoolId;
public long getSchoolId() {
return schoolId;
}
public void setSchoolId(long schoolId) {
this.schoolId = schoolId;
}
public School getSchool() {
return school;
}
public void setSchool(School school) {
this.school = school;
}
ダニーが提案したようにコードを変更すると、私が望む結果が得られます..ほとんど。今クエリを実行すると、次のようになります。
[ {
"id":1,
"school": {"id":1, "name":"De regenboog", password":"800e30e9bb3b82ce955a127650d835d0", "street":"Plantaanstraat", "number":"2", "zipCode":"1234AS", "city":"Amsterdam", "contactName":"Arends", "contactPhoneNumber":"06-45648466", "contactEmail":"arends@regenboog.nl"},
"schoolId": 1
"name":"Groep",
"dateCreated":"2012-04-25"
}
]
school
問題は、この特定のクエリを無効にしたいということです。それは可能ですか?