次のコードを使用して JPA クラスからデータを取得します
factory = Persistence.createEntityManagerFactory("abc");
EntityManager entityManager = factory.createEntityManager();
classList.add("pack.Person");
for (Object classOjc : classList) {
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());
}
}
}
Person [firstName=firstName 1, lastName=lastName 1, bigDecimal=0, myDate=Wed Sep 16 06:42:18 IST 1998],
Person [firstName=firstName 2, lastName=lastName 2, bigDecimal=0, myDate=Sun May 19 13:12:51 IDT 1957],
Person [firstName=firstName 3, lastName=lastName 3, bigDecimal=0, myDate=Fri Jun 03 05:09:20 IDT 1949],
クラスは
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private String firstName;
private String lastName;
@Override
public String toString() {
return "Person [firstName=" + firstName + ", lastName=" + lastName +
"]";
....
私の質問は、オーバーライド結果が次のようなものであると仮定しています(すべての属性とクラス名を指定してください)、方法があります
person クラスの toString() をオーバーライドするので、印刷は次のようになりますが、私の質問は、たとえばフィールド名または値のみを印刷する方法があることです (to 文字列を変更できないと仮定し、それはすべてのクラスで同じ)問題は、任意のクラスを取得できるため、結果をたとえば人にキャストできることです