2009-05-28 26 views
10

Tôi có một lớp trông giống như sau:Hibernate - PropertyNotFoundException: Không thể tìm thấy một getter cho

public class MyClass { 
    private String dPart1; 

    public String getDPart1() { 
     return dPart1; 
    } 

    public void setDPart1(String dPart1) { 
     this.dPart1 = dPart1; 
    } 
} 

My tập tin bản đồ ngủ đông bản đồ tài sản như sau:

<property name="dPart1" not-null="true"/> 

tôi nhận được lỗi sau:

org.hibernate.PropertyNotFoundException: Could not find a getter for dPart1 in class com.mypackage.MyClass 
     at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:282) 
     at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:275) 
     at org.hibernate.mapping.Property.getGetter(Property.java:272) 
     at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:247) 
     at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:125) 
     at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55) 
     at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56) 
     at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:302) 
     at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434) 
     at 

Có vẻ như chế độ ngủ đông không thích chữ viết hoa của tôi. Làm thế nào tôi nên sửa lỗi này?

Trả lời

16
<property name="DPart1" not-null="true"/> 

nên làm việc ...

+0

Tôi cũng đang gặp vấn đề và các giải pháp trên hoạt động tốt cho tôi. Bây giờ những gì tôi muốn biết là nó là đặc tả java cho các phương thức getter setter hay là nó thực hiện jboss cụ thể cho hibernate? Cảm ơn bạn đã trả lời :) –

+0

Bạn có thể vui lòng cung cấp giải thích về giải pháp của mình không? – Marco

4

cho một tài sản gọi là "dPart1" một hibernate sẽ cố gắng một getter có tên là "getDpart1" không "getDPart1" IIRC

+0

cách viết hoa là quan trọng. tức là – emdog4

+0

nếu cần có getDPart1 thì sao? –

3

thể bạn không chỉ cần truy cập vào nó như một cánh đồng?

truy cập = "lĩnh vực"

0

tôi có những giải pháp

Hãy dPart1 để dpart1 và thay đổi phương thức getter và setter một lần nữa ..

Nó đang làm việc cho tôi bây giờ.

Hãy nhớ thay đổi xml.

0
private String rptausu; 

public String getRptausu() { 
    return rptausu; 
} 

public void setRptausu(String rpta) { 
    rptausu = rpta; 
} 

lập bản đồ:

 <property name="prtausu" /> 

tác phẩm một cách chính xác

0

Từ những gì tôi đã nhìn thấy, Hibernate (ít nhất là phiên bản 3.2.4) sẽ mong đợi một tài sản như dPart để có một getter tên getdPart : d giữ chữ thường. Nhìn vào câu trả lời của dfa là tốt - tôi đoán rằng các phiên bản khác có thể mong đợi getDpart thay thế.

0

Các setter & getter sẽ trông như thế này

getdPart1() 
setdPart1(....) 

Đó là cách các setters & thu khí được tạo ra nếu tạo ra thông qua một IDE như Eclipse.

0

Đối với một tài sản riêng Integer carId;

setters và thu khí nên

getCarId() setCarId (Integer carId)

0

Quy ước đặt tên của tài sản quan trọng ví dụ như trong trường hợp của tôi, tôi bước đầu sử dụng

private String newimsi, getNewImsi(); 

sự ở trên không thành công với cùng một ngoại lệ

propertynotfoundexception

cho đến khi tôi sửa lại bên dưới trước khi nó hoạt động

getNewimsi(); 
Các vấn đề liên quan