2015-10-07 20 views
5

Tôi đang sử dụng chế độ ngủ đông 4.1.9. Mã của tôi là@Transient không hoạt động ở chế độ ngủ đông

@Transient 
private String ldapIdTemp; 

gói là

import javax.persistence.Transient; 

Vẫn trong truy vấn ngủ đông, nó không phải đang làm việc và đặt thuộc tính trong truy vấn.

một phần của đoạn truy vấn (assetasset0_.ldapIdTemp như ldapIdTemp16_0_,)

Tôi không chắc chắn những gì tôi đang làm sai.

Trả lời

7

Bạn có thể thử tạo setter và getter cho lĩnh vực này và chú thích các phương pháp get với @Transient, như sau:

private String ldapIdTemp; 

@Transient 
public String getLdapIdTemp() { 
    return ldapIdTemp; 
} 

public void setLdapIdTemp(String ldapIdTemp) { 
    this.ldapIdTemp = ldapIdTemp; 
} 
+1

đây chính là vấn đề của tôi cảm ơn –

4

Phần lớn phụ thuộc vào cách bạn "tích hợp" lĩnh vực này trong hệ thống phân cấp Entity hoặc lớp học của bạn. Hơn nữa, trường so với thuộc tính -truy cập có thể gây ra sự cố cho cài đặt của bạn. Xem phần này post để biết giải thích chi tiết.

Trong trường hợp của bạn, tôi có thể tưởng tượng rằng bạn có:

  1. trường hỗn hợp và tài sản truy cập trong chiến lược thừa kế thực thể của bạn
  2. sử dụng dựa trên XML cấu hình cho Hibernate trong ứng dụng của bạn.

Trong cả hai trường hợp, các JPA 2.0/2.1 specification nêu rõ trong Mục 2.3.1:

Đây là một lỗi nếu một loại truy cập mặc định không thể được xác định và loại truy cập không được xác định một cách rõ ràng bằng phương pháp chú thích hoặc bộ mô tả XML. Hành vi của các ứng dụng mà trộn vị trí của chú thích trên các trường và thuộc tính trong một hệ thống phân cấp thực thể mà không chỉ định rõ ràng Chú thích truy cập không xác định.

Hãy kiểm tra dai dẳng Entity lớp học của bạn có một trong hai lĩnh vực HOẶC tài sản chú thích dựa trên.

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