エンティティ マネージャーを使用して、int バイト文字列 double などのいくつかのタイプのデータを保存します。これは正常に機能し、エンティティ クラス タイプ bigDecimal にフィールドを追加しました。コードをデバッグしているときに、オブジェクトに値タイプ bigDecimal が含まれていることを確認できます。テーブルからデータを読み取ると、すべてのタイプのエントリが取得されますが、bigDecimal(got 0) のエントリは取得されません。その理由は何ですか。クラスに bigDecimal の get と set が含まれていることを確認します。ところで、私はダービーDBをeclipselinkで使用しています
私がプロセスをデバッグし、bigdecimalデータを2回見ることができるという一貫性のない動作である何か奇妙なことが起こります...
これが実体
@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());
}