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

时间:2016-07-26 16:28:35

标签: java jpa eclipselink olingo

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

Database Model

我还基于此创建了JPA实体,并使用Olingo v2公开了它。 当我尝试通过邮递员创建客户端实体时,它可以正常工作

{
"Name": "John Doe"
}

然而,当我尝试创建地址时

{
    "Street": "Street for John Doe",
    "Zipcode": "444465",
    "Client": 1
 }

它以

失败
  

MySQLIntegrityConstraintViolationException:列'clientId'不能为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 - “请求正文格式错误”

我是否在Client属性或其他内容上添加了一些注释?

注意:如果删除连接列并创建列clientId,插入/更新工作正常...但是在这种情况下我最终失去了Odata模型的导航功能

感谢您的反馈,

此致

佩德罗

0 个答案:

没有答案