MYSQL で単純な DB を作成しました。
また、これに基づいて JPA エンティティを作成し、Olingo v2 を使用して公開しました。postman を使用してクライアント エンティティを作成しようとすると、正常に動作します
{
"Name": "John Doe"
}
ただし、アドレスを作成しようとすると
{
"Street": "Street for John Doe",
"Zipcode": "444465",
"Client": 1
}
それは失敗します
MySQLIntegrityConstraintViolationException: 列 'clientId' を null にすることはできません
null 不可にしたため、このエラーが予想されます
ただし、 "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 モデルのナビゲーション機能が失われてしまいます
フィードバックをお寄せいただきありがとうございます、
よろしく
ペドロ