Hi,
I am facing a problem with "final" getter methods. I have a model class with final getter and setter methods. After loading the object, when I call the get method, it is returning me null.
If I change the method to non-final, then I am getting the expected value. This was working perfectly fine with hibernate 2.
Can any body tell me the logic behind this ?
CODE
=======
Document document = (Document) session.load(new Long(100),Document.class);
System.out.println("toString :" +document);
System.out.println("DocumentNumber" + document.getDocumentNumber());
CONSOLE OUT
=========
Document : setDocumentNumber 111
toString :documentNumber 111 documentType AWBprefix 172docId 100
Document : getDocumentNumber null
DocumentNumbernull
Code:
package com.sample;
public class Document {
private String documentNumber;
private String documentType;
private String prefix;
private Long docId;
public Document(){}
public Document(String docNumber,String prefix){
setDocumentNumber(docNumber);
setDocumentType("AWB");
setPrefix(prefix);
}
public final String getDocumentNumber(){
System.out.println("Document : getDocumentNumber "+ documentNumber);
return documentNumber;
}
public String getDocumentType() {
return documentType;
}
public String getPrefix() {
return prefix;
}
public final void setDocumentNumber(String documentNumber) {
System.out.println("Document : setDocumentNumber "+ documentNumber);
this.documentNumber = documentNumber;
}
public void setDocumentType(String documentType) {
this.documentType = documentType;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public void setDocId(Long docId){
this.docId = docId;
}
public Long getDocId(){
return docId;
}
public String toString(){
return "documentNumber "+ documentNumber +
" documentType " + documentType +
"prefix "+ prefix +
"docId "+ docId;
}
}