私の双方向の関係が機能しません。 チュートリアルの時間を読んだ後、私はこのクラスを持っている:JPAマッピング:OneToMany(双方向)関係が機能しません
SourceSystems.java
@Entity
@Table(name = "source_systems")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class SourceSystems implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Column(name = "name", nullable = false)
private String name;
@NotNull
@Column(name = "url", nullable = false)
private String url;
@Column(name = "identifier")
private String identifier;
@NotNull
@Column(name = "trading_activated", nullable = false)
private boolean tradingActivated;
@OneToMany(mappedBy="sourceSystems", fetch = FetchType.EAGER)
private List<Currency> currencies;
// getters and setters
Currency.java
@Entity
@Table(name = "currency")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Currency implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Column(name = "name", nullable = false)
private String name;
@NotNull
@Column(name = "identifier", nullable = false)
private String identifier;
@Column(name = "currency_ext_id")
private String currencyExtId;
@Column(name = "disabled")
private Boolean disabled;
@Column(name = "date_added")
private ZonedDateTime dateAdded;
@ManyToOne
@JoinColumn(name="source_systems_id")
private SourceSystems sourceSystems;
一つ SourceSystemはn個通貨を持っています。 私の目標は、SourceSystemsのリストを取得し、各ソースシステムでその通貨リストの通貨を取得することです。私は
sourceSystemsRepository.findAll();
を呼び出すと
これは、ソースsstemsのリストを私に戻って与えるが、その通貨はnullです。私はまた、このようなリポジトリに参加する上でそれを試してみました:
それはSourceSystemsのセットを私に戻っていますが、彼らは多くのように重複している:1は本当に奇妙な私に何かを返したこと
@Query("select source_systems from SourceSystems source_systems inner join source_systems.currencies currs where source_systems.tradingActivated = true")
List<SourceSystems> findAllActiveSourceSystemsWithCurrencies();
私はsourceSystemの通貨を持っているのでしかし、SourceSystemの内部では、通貨リストはnullです。
呼び出し例外について:私はtoStringメソッドを何度も再生成しましたが、成功しませんでした。
私はリポジトリにクエリに何か問題があると仮定します。
誰でも教えてください。