我使用实体管理器为 int byte string double 等几种类型保存数据,这工作正常我将字段添加到实体类类型 bigDecimal 并且在调试对象包含值类型 bigDecimal 的代码时我可以看到。当我从表中读取数据时,我得到了所有类型的条目,但没有得到 bigDecimal(got 0) 的条目,知道这可能是什么原因。我验证该类包含为 bigDecimal 获取和设置。顺便说一句,我将 derby DB 与 eclipselink 一起使用
发生了一些奇怪的事情,这是我调试过程的不一致行为,两次我能够看到 bigdecimal 数据......
这是实体
@Entity
public class emp {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int id;
private String firstName;
private String lastName;
private BigDecimal bigDecimal;
这是保存数据的代码,这里的对象包含所有的值
entityManager.getTransaction().begin();
entityManager.persist(object);
entityManager.getTransaction().commit();
这是读取数据的代码
factory = Persistence.createEntityManagerFactory("abc");
EntityManager entityManager = factory.createEntityManager();
String className = classOjc.toString();
Query query = entityManager.createQuery("SELECT p FROM " + className + " p");
@SuppressWarnings("rawtypes")
List resultList = query.getResultList();
System.out.println(resultList.size());
for (Object result : resultList) {
System.out.println(result.toString());
}