JPA中的java连接列始终作为null插入/更新
我在MYSQL中创建了一个简单的数据库:
我还基于此创建了JPA实体,并使用Olingo v2公开了它。 当我试图通过postman创建一个客户实体时,效果很好
{
"Name": "John Doe"
}
但是当我试图创建一个地址时
{
"Street": "Street for John Doe",
"Zipcode": "444465",
"Client": 1
}
它失败了
MySQLIntegrityConstraintViolationException: Column 'clientId' cannot be null
这个错误是预料之中的,因为我使它不可为空
然而,我假设“Client”:1将被正确处理并转换为查询:
ClientId
列作为联接列在Address
实体中可用:
//bi-directional many-to-one association to Client
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name="clientId")
private Client client;
我尝试更改JSON格式,在地址中创建子对象客户端,如下所示:
{
"Street": "Street for John Doe",
"Zipcode": "444465",
"Client": { "Id": 3 }
}
但最终的结果是400——“请求正文格式不正确”
我是不是误解了客户财产上的注释或其他什么
注意:如果我删除join列并创建列clientId,插入/更新工作正常。。。然而在这种情况下,我最终失去了Odata模型的导航能力
谢谢你的反馈
问候
佩德罗
共 (0) 个答案