有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JPA中的java连接列始终作为null插入/更新

我在MYSQL中创建了一个简单的数据库:

Database Model

我还基于此创建了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) 个答案