java - 泛型DAO搜索方法

  显示原文与译文双语对照的内容
0 0

我有一個場景,其中有兩個實體類。 他們的結構像


Class A{
Long id;
//some fields
}

Class B{
Long id;
Long associtedA;
//some field
}

實體B 中的欄位associtedA是 A.id的關係,它們之間的關係是 one-to-many

我需要得到A的列表及其相關的B 數據清單。

我嘗試用搜索來實現這個。 但是我找不到工作的解決方案。 我也不能改變實體。

我可以通過檢索所有的列表來實現這一點,然後為每個 A.id 再次檢索相關的B 數據。 但是,我必須使服務調用循環,這是我不想要的。

這個場景有什麼聰明的方法?

时间: 原作者:

0 0

你可能需要查看 JinQ ( http://www.jinq.org ),然後你可以執行以下操作:


streamProvider.streamAll(entityManager, B.class).join((a, source) -> source.stream(A.class)
.where(pair -> pair.getOne().id == pair.getTwo().id)
.select(pair -> pair.getOne())
.toArray()

認為這是最明智的方法;) ( 當然你需要對Lambda表達式進行 Java 8 )

0 0

抱歉,這些實體似乎是錯誤的。 你使用的是JPA?

如果你使用的是實體管理器( 例如 Hibernate,例如) 類,則將是如下所示:


Class B{
 Long id;
 A associtedA;
//some field
}

請參見 B.associtedA的類型為。

...