2017-09-08 12 views
-1

誰かが私を導くことができますか?郵便配達員からリクエストを送信するとreportFilterが空になります。 'Name'フィールドは正しく設定されていますが、BUTレポートのフィルタはnullです。 OneToManyに注釈がありません。私はReportTemplateオブジェクトをとる保存//APIを呼び出していますが、私は、そのオブジェクトJavaの1対多の永続ハッシュセット

@Entity 
@Audited 
@XmlRootElement 
@Table(uniqueConstraints = @UniqueConstraint(columnNames = "name")) 
@JsonIgnoreProperties(value = { "handler", "hibernateLazyInitializer" }) 
public class ReportTemplate { 
private String name; 
private String templateFormat; 
private Set<ReportFilter> reportFilter = new HashSet<>(); 

@NotNull 
public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

@OneToMany(mappedBy="reportTemplate") 
@JsonIgnore 
public Set<ReportFilter> getReportFilter() { 
    return reportFilter; 
} 

    public void setReportFilter(Set<ReportFilter> reportFilter) { 
    this.reportFilter = reportFilter; 
    } 
} 

@Entity 
@Audited 
@XmlRootElement 
@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"column_1", "reportTemplate_id"})) 
@JsonIgnoreProperties(value = { "handler", "hibernateLazyInitializer" }) 
public class ReportFilter { 

private String column_1; 
private ReportTemplate reportTemplate; 

@NotNull 
public String getColumn_1() { 
    return column_1; 
} 

public void setColumn_1(String column_1) { 
    this.column_1 = column_1; 
} 

@ManyToOne 
@NotNull 
public ReportTemplate getReportTemplate() { 
    return reportTemplate; 
} 

public void setReportTemplate(ReportTemplate reportTemplate) { 
    this.reportTemplate = reportTemplate; 
} 
} 

郵便配達の依頼でreportFilter一覧を取得していない午前:あなたの問題は、これらのコード片から@JsonIgoneを削除することによって解決し

{ 
    "name": "Test-Report", 
    "reportFilter": [ 
     { 
      "filterColumn": "Reference Number", 
      "column_1": "A", 
      "columnValue": "HE222", 
     }, 
     { 
      "filterColumn": "Test Column", 
      "column_1": "B", 
      "columnValue": "1234", 
     } 
    ] 
} 
+2

JsonIgnoreは何をしていますか?そのドキュメントは次のとおりです:https://fasterxml.github.io/jackson-annotations/javadoc/2.5/com/fasterxml/jackson/annotation/JsonIgnore.htmlところで、エンティティにはIDがありません。それは有効ではありません。 –

答えて

0

:このanntotaionと

@OneToMany(mappedBy="reportTemplate") 
public Set<ReportFilter> getReportFilter() { 
    return reportFilter; 
} 

あなたはエンティティを休止するJSONオブジェクトから変換するときに、このプロパティを無視JsonEncoderDecoderに言います。

また、2つのエントリーの関係の片側に@JoinColumnが見つかりませんでした。

@ManyToOne 
@JoinColumn(name = "TEMPLATE_ID") 
@NotNull 
public ReportTemplate getReportTemplate() { 
    return reportTemplate; 
} 

オーナーエンティティを定義するには、これが必要です。

また、すべてのエンティティMOSTには、プライマリキー用に1つの@Idカラムがあります。