我在 MYSQL 中创建了一个简单的数据库:
我还基于此创建了 JPA 实体,并使用 Olingo v2 公开了它。当我尝试通过邮递员创建客户端实体时,它工作正常
{
"Name": "John Doe"
}
但是,当我尝试创建地址时
{
"Street": "Street for John Doe",
"Zipcode": "444465",
"Client": 1
}
它失败了
MySQLIntegrityConstraintViolationException:列'clientId'不能为空
这个错误是预期的,因为我使它不可为空
但是我假设 "Client": 1 将被正确处理并转换为查询:
ClientId
列在Address
实体中可用作连接列:
//bi-directional many-to-one association to Client
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name="clientId")
private Client client;
我尝试更改 JSON 格式以在 Address 中创建一个子对象 Client,如下所示:
{
"Street": "Street for John Doe",
"Zipcode": "444465",
"Client": { "Id": 3 }
}
但这最终会出现 400 - “请求正文格式错误”
我是在 Client 属性上遗漏了一些注释还是其他东西?
注意:如果我删除连接列并创建列 clientId,则插入/更新工作正常......但是在这种情况下,我最终失去了 Odata 模型的导航能力
感谢您的反馈,
问候
佩德罗