2013-01-21 42 views
0

我希望使用 @QueryHint(name = QueryHints.BATCH,value =「pi.jrnls」) 註釋以及主鍵@Id查找。 我在哪裏註釋?它看起來像我只能把它放在@NamedQuery中。但是默認的pk查找當然沒有@NamedQuery。批量在EclipseLink中正常查找操作的內部提取

@Entity 
@Table(schema="prd", name="PRDITEM", uniqueConstraints= {@UniqueConstraint(columnNames= {"prditmNO"})}) 
@Cache(expiry=com.quoka.qis.lib.persistence.Constants.SHORT_CACHE_PERIODE_MS) 
@NamedQuery(name = "PrdItem.findByNo", query = "select pi from PrdItem pi where pi.no = ?1", 
    hints={ 
     @QueryHint(name=QueryHints.BATCH, value="pi.jrnls"), 
     @QueryHint(name=QueryHints.BATCH, value="pi.bookings")//, 
    } 
) 
public class PrdItem {.... 


@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY) 
@Column(name="prditmID", insertable = false, nullable=false, unique=true) 
private Long id; 

回答

1

的EclipseLink有BatchFetch註釋您可以添加到映射: http://eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_batchfetch.htm

JPA 2.0還有一個發現簽名需要在課堂上,重點和屬性映射。

+0

對不起,我沒有告訴。我使用eclipselink 2.0。沒有批處理。 –

+0

在EclipseLink 2.1中添加了BatchFetch註釋。 EclipseLink 2.0具有JPA 2.0支持,所以如果您使用JPA 1.0持久性jar,仍然可以將參數傳遞給EclipseLink EntityManagerImpl上可用的find方法。您還可以使用描述符定製器將批量抓取添加到映射中,並在其上調用useBatchReading():http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Customizers – Chris