-1

次のコードを使用して 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 文字列を変更できないと仮定し、それはすべてのクラスで同じ)問題は、任意のクラスを取得できるため、結果をたとえば人にキャストできることです

4

2 に答える 2

1

必要に応じて複数の toString メソッドを追加してみませんか。または、印刷したい属性リストを含む単一のメソッドを記述します。

于 2013-06-01T15:52:36.337 に答える