0
オブジェクト。タグは次のようになります。春ブーツカスタムの配列とJSONシリアル化カスタムオブジェクトは、このクラスがある
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
private long activityId;
private String keyword;
public Tag(String keyword){
this.keyword = keyword;
activityId = -1;
}
Activity
とTag
の両方がEntitysであり、また両方Repositorysを持っている:
public interface TagRepository extends CrudRepository<Tag, Long> {
}
public interface ActivityRepository extends CrudRepository<Activity, Long> {
}
これは作成あり - データベースにActivity
オブジェクトを格納する方法:
@PostMapping
public Activity create(@RequestBody Activity input) {
if(input.getTags() != null) {
for(Tag t : input.getTags()) {
t.setActivityId(input.getId()); //associate which activity has which tags
tagRepository.save(t);
}
}
return activityRepository.save(input);
}
は、
POST経由でこのJSONを送信します。
{
"key":2,
"text":"Hello",
"tags":[{
"keyword":"h"
},{
"keyword":"b"
}
],
"title":"world"
}
しかし、私はこのエラーを取得する:どちらのクラスもゲッター/各メンバ変数のためのセッターとの両方のデフォルトのctorsを持っている
、私はできるだけ短い質問を保つために、ここでそれらを示しませんでした。
@OneToManyタグ属性に注釈を付けますか? – Mick
私は以下を取得します: 'org.hibernate.AnnotationException:リスト/配列に@OrderColumn(または@IndexColumn):base.Activity.tags'というアノテーションを付ける必要があります – binaryBigInt