Задать вопрос
  • Как исправить ошибку с ленивой инициализацией?

    Conacry
    @Conacry
    Вы можете использовать Hibernate.initialize().

    Hibernate.initialize(user.getAutos);
    user.addAuto(auto);

    Это позволит явно проинициализировать прокси-объект. Если у вас будут дополнительные вопросы, пишите, буду рад помочь.
    Ответ написан
  • Как заполнить поле класса (класс = сущности таблицы)?

    Conacry
    @Conacry
    Здравствуйте.

    Зачем вам отдельное поле userName? Используйте связи таблиц (OneToMany, ManyToOne). Так вы получите доступ к сущности User, и далее ко всем его полям.
    Ответ написан
  • Стоит ли браться за сложные задачи?

    Conacry
    @Conacry
    Здравствуйте

    Однозначно стоит. Вы никогда не будете совершенствовать свои знания, если не будете с каждым разом брать задачи сложнее.
    Из личного примера.
    Я после прочтения Шилдта (Руководство для начинающих) сразу поставил себе задачу сложнее - написать веб-сервис и клиент к нему (на JavaFX), и в процессе написания сервиса знакомился с новыми технологиями. Ставил проект на паузу, пока осваивал новый фреймворк, несколько раз переписывал. Но в итоге это дало знаний намного больше.
    И таким образом вы быстрее всему научитесь.
    Ответ написан
    Комментировать
  • Как вывести вложенные данные OneToMany?

    Conacry
    @Conacry
    Здравствуйте.
    Для полного понимания не хватает кода вашего сервис-класса и dao-класса (при его наличии). На мой взгляд проблема в стратегии загрузки связанных объектов (@OneToMany).
    В Hibernate/JPA существует два типа стратегии загрузки связанных объектов: сразу (FetchType=EAGER) или же делать это только при обращении к ним (FetchType=LAZY). На самом деле в случае, когда предметная область имеет сколь-либо сложную структуру связей между объектами, выбор уже сделан – загружать полбазы ради одного объекта, как это было бы при FetchType=EAGER, мягко говоря, неразумно. Поэтому ленивая инициализация в случае коллекций есть наиболее предпочтительная стратегия инициализации связанных объектов [https://habr.com/post/111911/]. По умолчанию для связи OneToMany используется FetchType=LAZY.
    Так что проблема с загрузкой связанных объектов из базы данных.

    В коде вашей модели необходимо добавить анноацию с выбором типа стратегии загрузки:
    ...
    @OneToMany(fetch = FetchType.LAZY)
    private List<QueryParams> queryParams;
    ...


    А в классе-сервисе или DAO-классе перед
    ...
    return testObject;
    ...
    поставить строчку
    Hibernate.initialize(testObject.getQueryParams);
    В таком случае Hibernate загрузит все связанные объекты.
    Если у вас остались вопросы, пишите, готов ответить.
    Ответ написан
    7 комментариев
  • Какое время автоной работый у Thinkpad x1 Carbon под Linux?

    Conacry
    @Conacry
    У меня ноутбук HP Power Laptop, на борут Debian 9. Для увеличения автономности работы надо ставить утилиту TLP. После настройки получил время работы больше чем в Windows (до этого стояла Windows 10 Home). TLP позволяет тонко настроить энергосбережение. Производителем заявленное время работы 11 ч (но сложилось впечатление, что данное время, это если не трогать ноутбук вообще), в Windows время работы при нагрузке 5 часов, в Linux 6 часов. Из нагрузки - Intellij Idea, VS Code, машина с Ubuntu Server в Virtualbox, 15+ вкладок в Chrome.
    Ответ написан
    Комментировать
  • Почему на клиенте теряются данные?

    Conacry
    @Conacry
    Здравствуйте.

    Покопайте на тему "hibernate lazy initialization" (Если вы используете ее в отношении One to Many - fetch = FetchType.LAZY). Проблема в том, что связанный объект не загружается с базы данных (здесь вам нужно почитать про proxy-объекты в hibernate).
    Чтобы явно инициализировать объект с БД, я использовал:
    Hibernate.initialize(Object obj)
    Ответ написан
    Комментировать
  • Java как наконец запустить Hibernate?

    Conacry
    @Conacry
    Здравствуйте.

    Для начала Вам необходимо иметь аннотированный класс, связанный с сущностью в базе данных. Для примера приведу из своего проекта:

    @Entity
    @Table(name = "users")
    public class User implements Serializable {
    
        @Id
        @Column(name = "user_id")
        @GeneratedValue(strategy = GenerationType.SEQUENCE,
                        generator = "users_user_id_seq")
        @SequenceGenerator(name = "users_user_id_seq",
                           sequenceName = "users_user_id_seq",
                           allocationSize = 1)
        private long userId;
    
        @Column(name = "name", nullable = false)
        private String name;
    
        @Column(name = "login", nullable = false, unique = true)
        private String login;
    
        @Column(name = "password", nullable = false)
        private String password;
    
        @Column(name = "email", nullable = false, unique = true)
        private String email;
    
        @Column(name = "enabled", nullable = false)
        private boolean isEnabled;
    
        @Column(name = "reg_date", nullable = false)
        private Date regDate;
    
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "authority_id", nullable = false)
        private Authority authority;
    
        public long getUserId() {
            return userId;
        }
    
        public void setUserId(long userId) {
            this.userId = userId;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getLogin() {
            return login;
        }
    
        public void setLogin(String login) {
            this.login = login;
        }
    
        @JsonIgnore
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public boolean isEnabled() {
            return isEnabled;
        }
    
        public void setEnabled(boolean enabled) {
            isEnabled = enabled;
        }
    
        @JsonSerialize(using = SqlDateSerializer.class)
        public Date getRegDate() {
            return regDate;
        }
    
        public void setRegDate(Date regDate) {
            this.regDate = regDate;
        }
    
        public Authority getAuthority() {
            return authority;
        }
    
        public void setAuthority(Authority authority) {
            this.authority = authority;
        }
    
        @Override
        public String toString() {
    
            return  "User details" +
                    "Id = " + getUserId() + "\n" +
                    "Name = " + getName() + "\n" +
                    "Login = " + getLogin() + "\n" +
                    "Email = " + getEmail() + "\n" +
                    "Enabled = " + isEnabled() + "\n" +
                    "Role = " + getAuthority().getAuthority().name() + "\n" +
                    "Registration date = " + getRegDate();
        }


    Если Вам будут непонятны какие-либо вещи из класса сущности, напишите в комментарии, я отвечу.

    Далее при конфигурировании Hibernate вам нужно указывать не .addClass(MyClass.class), а configuration.addAnnotatedClass(Main.class).
    Ответ написан
    1 комментарий
  • Актуальные книги по android для новичков, на русском языке что можно выбрать?

    Conacry
    @Conacry
    Здравствуйте.
    Из книг могу посоветовать следующие:
    1. П. Дейтел, Х. Дейтел, А. Уолд. Android для разработчиков. 3-е издание(2016);
    2. Брайан Харди, Билл Филлипс,Крис Стюарт, Кристин Марсикано.Программирование под Android. 2-е издание (2016).

    Но у книг есть один веский недостаток - они выпускаются уже устаревшими.
    Если хотите иметь полную информацию по последним версиям Android, а также нововведениям в SDK, то официальная документация наше все - https://developer.android.com/index.html

    Также есть хороший ресурс с гайдами - https://guides.codepath.com/android
    Ответ написан
    1 комментарий
  • Начиная, с какой версии java поддерживает автоматический вывод типов?

    Conacry
    @Conacry
    Здравствуйте.

    Если вы имеете преобразование типов в очевидных случаях, то в J2SE 5.0.
    Ответ написан
  • Как правильно построить модель получения данных?

    Conacry
    @Conacry
    Здравтсвуйте.

    У меня как раз сейчас pet project с подобной структурой (делаю программу учета баллов спортсменов на соревнованиях). В проекте есть модель "Комманда" и модель "Участник команды". Все данные храню в базе данных с отношением "один-ко-многим".
    Реализована следующая логика:
    1. Пользователь может посмотреть к какой команде относится участник. Т.е. по участнику я могу получить команду, но только данные команды(тип, страна, город и т.д), инормация об остальных участниках команды здесь не получаю.
    2. Пользователь модет посмотреть данные по всей команде. Здесь уже пользователь по команде получает все ее данные, включающие всех участников.

    Я не знаю подробности вашего приложения, но метод получения данных лучше реализовать в отдельном классе(DAO или Repository)
    Ответ написан
    1 комментарий
  • Как правильно преобразовать данный код в котлин?

    Conacry
    @Conacry
    Здравствуйте.

    Не совсем уверен, но если попробовать так:

    return buf ?: Unpooled.buffer()
    Ответ написан
  • На чем сделать не сложный калькулятор?

    Conacry
    @Conacry
    А какой вы хотите изучить? С каким языком хотите дальше работать? На том и пишите калькулятор. Из указанных вами языков, подходят все.
    Ответ написан
    Комментировать
  • Как подключение Tomсat к intellij idea 2017 2.6?

    Conacry
    @Conacry
    Здравствуйте.
    У вас Intellij Idea Community? Если так, то поддержка JavaEE технологий в ней нет. Тут у вас два варианта:
    1. Купить Ultimate версию;
    2. Использовать Eclipse или Netbeans.
    Ответ написан
    1 комментарий
  • Как натстроить lamp для php?

    Conacry
    @Conacry
    Здравствуйте.

    Причин может быть несколько:
    1. Не установился интерпретатор php;
    2. Ошибка в конфигурации apache;
    3. Кэш браузера. Попробуй очистить кэш.

    Пункты, которые вы не делали, необходимы для настройки фаервола, в приведенном примере открывается доступ для TCP портов 80 и 443.

    Советую установить LAMP по инструкции - https://www.digitalocean.com/community/tutorials/l...
    Ответ написан
  • Какой учебник по Android Вы посоветуете?

    Conacry
    @Conacry
    Здравствуйте.
    Из книг могу посоветовать следующие:
    1. П. Дейтел, Х. Дейтел, А. Уолд. Android для разработчиков. 3-е издание(2016);
    2. Брайан Харди, Билл Филлипс,Крис Стюарт, Кристин Марсикано.Программирование под Android. 2-е издание (2016).

    Но у книг есть один веский недостаток - они выпускаются уже устаревшими.
    Если хотите иметь полную информацию по последним версиям Android, а также нововведениям в SDK, то официальная документация наше все - https://developer.android.com/index.html

    Также есть хороший ресурс с гайдами - https://guides.codepath.com/android
    Ответ написан
    Комментировать
  • Где взять задачи(идеи) для закрепления материала по пройденым темам?

    Conacry
    @Conacry
    Здравствуйте, можете посмотреть здесь: https://github.com/qqqlll/Java-Thread/wiki/Practice
    Ответ написан
    Комментировать
  • TabLayout, Fragments и Activity?

    Conacry
    @Conacry
    Здравствуйте. Советую прочитать вот эту книгу: https://habrahabr.ru/company/piter/blog/277023/. Она как раз хороша для новичков. В ней как раз очень хорошо разобрано похожее приложение.
    Ответ написан
    Комментировать
  • Как получить массив ссылок на photo VK API?

    Conacry
    @Conacry Автор вопроса
    Разобрался сам. Необходимо было переписать метод imageRequest.executeWithListener следующим образом:

    imageRequest.executeWithListener(new VKRequest.VKRequestListener() {
                @Override
                public void onComplete(VKResponse response) {
                    super.onComplete(response);
    
                    vkPhotoArray = (VKPhotoArray) response.parsedModel;
    
                    int i = 0;
                    for (VKApiPhoto vkPhoto : vkPhotoArray) {
                        imageResIds[i] = vkPhoto.photo_130;
                        i++;
                    }
    
                    mAdapter = new ImageAdapter(getActivity());
                    final GridView mGridView = (GridView) layout.findViewById(R.id.image_grid);
                    mGridView.setAdapter(mAdapter);
                }
            });
    Ответ написан
    Комментировать
  • Какой GUI-программой устанавливать RPM в OpenSuse Leap 42.1?

    Conacry
    @Conacry
    Если я не ошибаюсь, Yast позволяет устанавливать пакеты.
    Ответ написан
  • По чём выучить C#?

    Conacry
    @Conacry
    Все что тебе нужно - https://mva.microsoft.com/
    Ответ написан
    Комментировать