2015-08-06 18 views
5

Tôi có một thực thể chứa một List do đó lazy được nạp theo mặc định:Làm thế nào để buộc tải háo hức với CrudRepository trong dữ liệu mùa xuân?

interface MyEntityRepository extends CrudRepository<MyEntity, Long> { 

} 

@Entity 
public class MyEntity { 
    @Id 
    private Long id; 

    @OneToMany(mappedBy = "bar") //lazy by default 
    private List<Bar> bars; 
} 

@Entity 
public class Bar { 
    //some more 
} 

Câu hỏi: Làm thế nào tôi có thể buộc tải háo hức khi thực hiện repository.findOne(id)?

+1

'@OneToMany (lấy = FetchType.EAGER) 'sẽ trợ giúp này? – Jebil

+1

Tôi biết tôi có thể buộc chế độ 'háo hức' như thế này. Nhưng tôi muốn gắn bó với 'lazy' mặc định và chỉ cần háo hức trên tất cả các danh sách trên một lựa chọn cụ thể. – membersound

+0

Sau đó, nếu bạn đang sử dụng tiêu chí trong DAO, bạn có thể bắt loại tìm nạp theo 'criteria.setFetchMode (" bars ", FetchMode.EAGER)' – Jebil

Trả lời

2

Tôi cũng cần điều này và khi tôi gọi dao bên trong một đối tượng dịch vụ được gọi là giao dịch tôi gọi là phương thức get, vì vậy không có ngoại lệ và tôi có thể tìm nạp các bản ghi. Something như trong java 8:

public ProductEntity findProduct(int id) { 
    ProductEntity p = productRepository.findOne(id); 
    p.getPresentations().stream().count(); 
    return p; 
} 

p.getPresentations().stream().count(); sẽ buộc lấy, tôi biết không phải là một cách sạch để làm điều đó nhưng nó được công việc làm trong thời gian trung bình

3

Bạn có thể buộc háo hức lấy viết truy vấn tùy chỉnh HQL với left join fetch, ví dụ:

interface MyEntityRepository extends CrudRepository<MyEntity, Long> { 
    @Query("select e from MyEntity e left join fetch e.bar b where e.id = ?1") 
    MyEntity findOne(long id) 
} 
-3

Thay đổi bản đồ của bạn từ

@OneToMany(mappedBy = "bar") //lazy by default 

Để

@OneToMany(mappedBy = "bar", fetch = FetchType.EAGER) //lazy by default 
+0

Để báo giá bản thân mình: "Tôi biết tôi có thể buộc các chế độ háo hức như thế này. Nhưng tôi muốn dính vào mặc định lười biếng và chỉ lực lượng háo hức trên [...] một lựa chọn cụ thể" – membersound

Các vấn đề liên quan