Pull to refresh
8
0
Владимир Заведяев @Westimo

Пользователь

Send message

Hibernate: ленивая загрузка, наследование и instanceof

Reading time4 min
Views21K
Рассмотрим, в качестве примера, следующую ситуацию. У нас имеется класс User с полями, описывающими пользователя. Имеется класс Phone, который является родительским для классов CellPhone и SatellitePhone. В классе User есть поле содержащее список телефонов пользователя. В целях уменьшения нагрузки на БД мы сделали этот список «ленивым». Он будет загружаться только по требованию.

Выглядит это все примерно так
public class User {
    ...

    @OneToMany(fetch = FetchType.LAZY)
    private List<Phone> phones = new ArrayList<Phone>();

    public List<Phone> getPhones() {
        return phones;
    }
}

public class Phone {
    ...
}

public class CellPhone extends Phone {
    ...
}

public class SatellitePhone extends Phone {
    ...
}


В такой конфигурации при запросе списка телефонов конкретного пользователя мы можем получить как список проинициализированных объектов-телефонов (например, если они уже есть в кэше), так и список proxy-объектов.
В большинстве ситуаций нам не важно с чем именно мы работаем (реальным объектом или его proxy). При запросе какого-либо поля какого-либо объекта — proxy-объект автоматически проинициализируется, и мы получим ожидаемые данные. Но если нам нужно узнать тип объекта, то все идет наперекосяк.
Почему так происходит и как моя команда решила эту проблему
Total votes 5: ↑5 and ↓0+5
Comments35

Создание обоев для двух и более дисплеев PC

Reading time3 min
Views68K
У меня, как и у многих, к компьютеру подключено 2 монитора. Ранее для обоев я использовал либо одну и ту же картинку на обоих мониторах, либо 2 разные картинки. Но совсем недавно в голову пришла мысль: «А почему бы не использовать 1 большую картинку?». И не просто распилив ее пополам, а чтобы все было «правильно», то есть учитывая разную плотность пикселей мониторов, их расположение, расстояние между активными областями и т.п… Ниже вы видите пример того что у меня получилось. Под «хабракатом» описание как это можно сделать самому с использованием Photoshop'а и линейки.


Читать дальше →
Total votes 48: ↑27 and ↓21+6
Comments34

Information

Rating
Does not participate
Location
Кемерово, Кемеровская обл., Россия
Date of birth
Registered
Activity