0

我在 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 模型的导航能力

感谢您的反馈,

问候

佩德罗

4

0 回答 0