получить поле в объекте в db4o на Java

#java #db4o

#java #db4o

Вопрос:

у меня есть метод запроса. я использую db40 в java

 public static void checkQuery(ObjectContainer db, final String nameFish) {
    ObjectSet result = db.query(new Predicate<WaterFish>() {

        @Override
        public boolean match(WaterFish fish) {
            // TODO Auto-generated method stub
            return fish.getGeneral_information().getVietnamese_name()
                    .contains("Ông tiên");
        }
    });
    listResult(result);

}
  

результат содержит: fish{nameFish, дистрибутив} и изображение.
как я могу получить только поле nameFish в объекте fish
как я могу получить единственное поле в результате?
Спасибо

Ответ №1:

db4o (по крайней мере, до января / 2012) может загружать только полные объекты. Вы можете использовать некоторые приемы, например, ввести новый класс для хранения данных (полей), которые вы используете не очень часто, и полагаться на прозрачную активацию для загрузки этих данных при необходимости (что-то вроде кода ниже).

 class FishData
{
   private Image picture;

   // other fields, getters / setters etc
}

class Fish
{
   private string name;
   private FishData data;

   // other fields, getters / setters etc  
}