【发布时间】:2018-04-11 08:20:51
【问题描述】:
我有两个看起来像这样的实体(为阅读目的而简化)。
@Entity
public class Machine {
@PrimaryKey
private long id
}
@Entity
public class MachineType {
@PrimaryKey
private long id
}
我想要的是拥有机器类型的机器实体。 我尝试了外键,但我的问题是它根本不像包含外部实体的 Spring Boot 等效 Persistence 库(我不知道如何解释得足够好)。下面是春季 REST-api 的一个示例:
{
"id": 1,
"name": "foo",
"machineType": {
"id": 1,
"name": "bar"
}
}
虽然有外键的房间是这样的:
{
"id": 1,
"name": "foo",
"machineType_id": 1
}
在将对象放回 API 时,这给我带来了各种麻烦。 所以我尝试使用@Relation 注释,因为这听起来像我需要的,但这只会产生错误,因为来自相关对象的列包含在主实体中,所以我得到两个“id”列。
错误:多个字段具有相同的 columnName:id。字段名称:id, machineType > id.
请帮忙。我在错误的轨道上吗?我的问题有更好的解决方案吗?
【问题讨论】:
-
所有完整的Entity类代码,未简化
-
你用过@Relation 吗?
标签: android spring-data-jpa android-room