0

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 モデルのナビゲーション機能が失われてしまいます

フィードバックをお寄せいただきありがとうございます、

よろしく

ペドロ

4

0 に答える 0