@Entity @Table(name = "STOCK") public class Stock implements Serializable { @OneToOne(fetch = FetchType.LAZY, mappedBy = "stock", cascade = CascadeType.ALL) private StockIndicators stockIndicators; } @Entity @Table(name = "STOCK_INDICATORS") public class StockIndicators { @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name="stock_id", foreignKey = @ForeignKey(name="fk_stock_id")) private Stock stock; } Korzystając ze spring data mam taką metodę do pobrania stock z indicators:
@Query("from Stock st inner join st.stockIndicators") Set findAllStocksFetchIndicators(); Problem pojawia się gdy to pobiorę nie jest zwracany set/list z obiektami stock tylko lista tablic, gdzie każda tablica ma dwa elementy. Jednym z nich jest stock ze stockindicators a drugi element to stockindicators ze stock. Nie bardzo rozumiem czemu tak się dzieje. Miał ktoś podobny problem?
Mam dwa obiekty relacja OneToOne:
@Entity
@Table(name = "STOCK")
public class Stock implements Serializable {
@OneToOne(fetch = FetchType.LAZY, mappedBy = "stock", cascade = CascadeType.ALL)
private StockIndicators stockIndicators;
}
@Entity
@Table(name = "STOCK_INDICATORS")
public class StockIndicators {
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name="stock_id", foreignKey = @ForeignKey(name="fk_stock_id"))
private Stock stock;
}
Korzystając ze spring data mam taką metodę do pobrania stock z indicators:
@Query("from Stock st inner join st.stockIndicators")
Set findAllStocksFetchIndicators();
Problem pojawia się gdy to pobiorę nie jest zwracany set/list z obiektami stock tylko lista tablic, gdzie każda tablica ma dwa elementy. Jednym z nich jest stock ze stockindicators a drugi element to stockindicators ze stock. Nie bardzo rozumiem czemu tak się dzieje. Miał ktoś podobny problem?
@Legol: Elegancko działa w sumie nie wiem czemu robiłem to przez inner join. Dzięki :)