2013-12-04 3 views
0

Как выполнить инструкцию SELECT для любого класса для примера У меня есть класс Foo.Как выполнить инструкцию SELECT для любого класса

class Foo 
{ 
Integer id, 
String name, 
String city 
} 

Теперь я просто хочу применить к нему инструкцию выбора. точно так же, как

Foo fooObject=new Foo(); 
fooObject =[select id, name, city from Foo limit 1]; 

Возможно ли это?

+1

Вы спрашиваете, как запросить экземпляр Foo в коллекции? Или отображение из базы данных в экземпляры Foo? –

+0

Теперь я обновил свой запрос для ограничения 1 и просто хочу применить оператор select к классу, а не к коллекции. Мы знаем, что с помощью ORM мы можем сопоставить любой класс с базой данных, но я не хочу сопоставлять класс с базой данных. –

ответ

1

«Отражение» - это то, что вы можете использовать для получения значений любого объекта программным способом. Но это не так сильно, как ваш выбор. В любом случае вы можете создать свою собственную фреймворку сверху.

Class fooClass = Foo.class; 
Field[] fields = fooClass.getFields(); 

for(Field field: fields) 
    Sysout.println("field: " + field.getName() + " = " + field.get.getObject(foo)); 

Но отражение всегда ограничивается одним объектом. Как тариф, поскольку я знаю, что отражение не имеет способа получить все экземпляры некоторого класса.

+0

Я думаю, мы можем выполнить запрос только по базе данных напрямую или с помощью ORM, и в обоих случаях мы пытаемся извлечь данные из базы данных. , наконец, не удалось выполнить «select statement on class» Благодарю всех вас –

Смежные вопросы