我正在使用 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。我在网上搜索并阅读了一些关于“服务级别映射”的内容,但我找不到任何示例。我用一个构建了我的应用程序
控制器 -> 服务 -> dao -> 存储库
设置。
我希望你们能帮助我!(如果您还需要更多源代码,请告诉我)。
非常感谢
编辑
我要补充的是,我的 MySql 表如下所示:
身份证 | 学校 ID | 姓名 | 创建日期
所以我想要返回的只是普通的 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;
}
当我像 Danny 建议的那样更改代码时,我得到了我想要的结果......几乎。如果我现在运行查询,这就是我得到的:
[ {
"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
这个特定查询。那可能吗?