What steps will reproduce the problem?
1. create class that has BigDecimal datatype property
2. write a concrete instance, is written as xsd:double instead of xsd:decimal
3. reading the class leads to the return of a null value.
sample code:
controller:
public void performTest()
{
RDF2Bean modelReader;
Bean2RDF modelWriter;
Test newTest = null;
int idNumber = 0;
OntModel m = ModelFactory.createOntologyModel();
modelReader = new RDF2Bean(m);
modelWriter = new Bean2RDF(m);
modelReader.bind(Test.class);
idNumber = getRandom();
newTest = new Test();
newTest.setId(idNumber);
newTest.setValue(new BigDecimal(666.0));
modelWriter.save(newTest);
Test returnTest = (Test) modelReader.load(Test.class,idNumber);
System.out.println(returnTest.getValue());
}
testclass:
import thewebsemantic.Id;
import thewebsemantic.Namespace;
import java.math.*;
public class Test {
@Id
private int id;
private BigDecimal value;
public int getId() { return this.id; }
public BigDecimal getValue() { return this.value;}
public void setValue(BigDecimal pHasNativeValue) { this.value = pHasNativeValue;}
public void setId(int pId) {this.id = pId;}
}
What is the expected output? What do you see instead?
The expected output is the stored BigDecimal value. It should be stored as
xsd:decimal according to jena mapping.
Instead, it is stored as xsd:double value by jenabeans. therefore a
java.lang.Double class is returned which leads to a "null" value when querying
for the datatype property.
What version of the product are you using? On what operating system?
Version: jenabean-1.0.6.jar,
OS: Eclipse platform
Please provide any additional information below.
the property value is stored as xsd:double while xsd:decimal would be required.
Original issue reported on code.google.com by mario.ko...@gmail.com on 3 Feb 2011 at 10:15
Original issue reported on code.google.com by
mario.ko...@gmail.com
on 3 Feb 2011 at 10:15