我正在使用遺留代碼。我有entity A
和entity B
類,但因爲entity B
被引用的地方很多,我儘量不做出entity B
變化。以下是這兩個實體的類。 Entity B
具有外鍵列這是entity A
的主鍵和在該數據庫表中,外鍵(AID)與表b(id)
的許多初級keies相關聯。解決單向OneToMany關係的問題
我需要的是A(1之間ID範圍 - 10000例如)的集合,其包括對應當我提出對錶-A的查詢,以幫助B的集合。當前的實現是首先獲取A(具有大量行)的集合,然後循環遍歷集合中的每個A,然後調用dao.findB(aId)爲A設置B的集合。它會導致多次訪問數據庫。我儘量減少這次旅行。例如,如果A有50,000行,則dao.findB(aId)將被調用50,000次。
table_b
----------
id table_a_id
1 2
2 2
3 2
4 3
5 3
@Entity
@Table(name = "table_a")
public class A{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private Long id;
}
@Entity
@Table(name = "table_b")
public class B{
private static final long serialVersionUID = 1L;
@Id
@Column(name="id", unique = true, nullable = false)
@GeneratedValue
private Long id;
@Column(name="table_a_id")
private Long aId;
}
@ user3123690不回答可以幫助你。 – 2014-09-03 04:41:55
感謝您的回答。我認爲我沒有解釋我的問題。我剛剛更新了它。你可以看一下嗎? – user3123690 2014-09-03 13:52:36
@ user3123690即使您在「實體A」內保留了「實體B」的引用,仍會獲取相同的查詢。替代方法可以是基於「A id」查詢「實體B」。 – 2014-09-03 13:56:54