Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
У меня есть настройки пользователя: Файл.

Эти настройки нужно перенести в бд для каждого юзверя свои настройки такие.

Пункты настроек oneXTwo, handicap, overUnder нужно отобразить в бд.

Тут беда в том что там данные: fullTime, halfTime повторяются.

Я поместил это в один юзабельный класс:

@Data
@Builder
@Embeddable
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class OddTimeSettingsEntity extends EmbeddableEntity {

    @Column(name = "`enabled`")
    private boolean enabled = false;

    @Column(name = "differenceTo")
    private Double differenceTo;

    @Column(name = "differenceFrom")
    private Double differenceFrom;

    @Column(name = "coefficientTo")
    private Double coefficientTo;

    @Column(name = "coefficientFrom")
    private Double coefficientFrom;

    @Column(name = "stepsCountTo")
    private Integer stepsCountTo;

    @Column(name = "stepsCountFrom")
    private Integer stepsCountFrom;

    @Column(name = "matchMinuteTo")
    private Integer matchMinuteTo;

    @Column(name = "matchMinuteFrom")
    private Integer matchMinuteFrom;

    @Column(name = "includeHTMatchMinute")
    private boolean includeHTMatchMinute = false;

}


И так Выше по конфигу:

Класс для элементов: live и preMatch:

@Data
@Builder
@Embeddable
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class OddPartSettingsEntity extends EmbeddableEntity {

    @Column(name = "`enabled`")
    private boolean enabled = false;

    @Embedded
    private OddTimeSettingsEntity fullTime;

    @Embedded
    private OddTimeSettingsEntity halfTime;

}


Теперь класс, в котором находятся live и preMatch:

@Data
@Builder
@Embeddable
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class OddSettingsEntity extends EmbeddableEntity {

    @Column(name = "`enabled`")
    private boolean enabled = false;

    @Embedded
    private OddPartSettingsEntity live;

    @Embedded
    private OddPartSettingsEntity preMatch;

}


И собственно сам класс с настройками:

@Data
@Entity
@Table(name = "`settings`")
@Builder
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class SettingsEntity extends AbstractEntity {

    ///...
    private OddSettingsEntity oneXTwo;

    @Column(name = "handicap", insertable = false, updatable = false)
    @Embedded
    @AttributeOverrides({

            @AttributeOverride(name = "enabled", column = @Column(name = "handicapEnabled")),
            @AttributeOverride(name = "live.enabled", column = @Column(name = "liveHandicapEnabled")),
            @AttributeOverride(name = "live.fullTime.enabled", column = @Column(name = "liveFullTimeHandicapEnabled")),
            @AttributeOverride(name = "live.halfTime.enabled", column = @Column(name = "liveHalfTimeHandicapEnabled")),

            @AttributeOverride(name = "live.fullTime.differenceTo", column = @Column(name = "liveFullTimeHandicapDifferenceTo")),
            @AttributeOverride(name = "live.fullTime.differenceFrom", column = @Column(name = "liveFullTimeHandicapDifferenceFrom")),
            @AttributeOverride(name = "live.halfTime.differenceTo", column = @Column(name = "liveHalfTimeHandicapDifferenceTo")),
            @AttributeOverride(name = "live.halfTime.differenceFrom", column = @Column(name = "liveHalfTimeHandicapDifferenceFrom")),

            @AttributeOverride(name = "live.fullTime.coefficientTo", column = @Column(name = "liveFullTimeHandicapCoefficientTo")),
            @AttributeOverride(name = "live.fullTime.coefficientFrom", column = @Column(name = "liveFullTimeHandicapCoefficientFrom")),
            @AttributeOverride(name = "live.halfTime.coefficientTo", column = @Column(name = "liveHalfTimeHandicapCoefficientTo")),
            @AttributeOverride(name = "live.halfTime.coefficientFrom", column = @Column(name = "liveHalfTimeHandicapCoefficientFrom")),

            @AttributeOverride(name = "live.fullTime.stepsCountTo", column = @Column(name = "liveFullTimeHandicapStepsCountTo")),
            @AttributeOverride(name = "live.fullTime.stepsCountFrom", column = @Column(name = "liveFullTimeHandicapStepsCountFrom")),
            @AttributeOverride(name = "live.halfTime.stepsCountTo", column = @Column(name = "liveHalfTimeHandicapStepsCountTo")),
            @AttributeOverride(name = "live.halfTime.stepsCountFrom", column = @Column(name = "liveHalfTimeHandicapStepsCountFrom")),

            @AttributeOverride(name = "live.fullTime.matchMinuteTo", column = @Column(name = "liveFullTimeHandicapMatchMinuteTo")),
            @AttributeOverride(name = "live.fullTime.matchMinuteFrom", column = @Column(name = "liveFullTimeHandicapMatchMinuteFrom")),
            @AttributeOverride(name = "live.halfTime.matchMinuteTo", column = @Column(name = "liveHalfTimeHandicapMatchMinuteTo")),
            @AttributeOverride(name = "live.halfTime.matchMinuteFrom", column = @Column(name = "liveHalfTimeHandicapMatchMinuteFrom")),

            @AttributeOverride(name = "live.fullTime.includeHTMatchMinute", column = @Column(name = "liveFullTimeHandicapIncludeHTMatchMinute")),
            @AttributeOverride(name = "live.halfTime.includeHTMatchMinute", column = @Column(name = "liveHalfTimeHandicapIncludeHTMatchMinute")),

            @AttributeOverride(name = "preMatch.enabled", column = @Column(name = "preMatchHandicapEnabled")),
            @AttributeOverride(name = "preMatch.fullTime.enabled", column = @Column(name = "preMatchFullTimeHandicapEnabled")),
            @AttributeOverride(name = "preMatch.halfTime.enabled", column = @Column(name = "preMatchHalfTimeHandicapEnabled")),

            @AttributeOverride(name = "preMatch.fullTime.differenceTo", column = @Column(name = "preMatchFullTimeHandicapDifferenceTo")),
            @AttributeOverride(name = "preMatch.fullTime.differenceFrom", column = @Column(name = "preMatchFullTimeHandicapDifferenceFrom")),
            @AttributeOverride(name = "preMatch.halfTime.differenceTo", column = @Column(name = "preMatchHalfTimeHandicapDifferenceTo")),
            @AttributeOverride(name = "preMatch.halfTime.differenceFrom", column = @Column(name = "preMatchHalfTimeHandicapDifferenceFrom")),

            @AttributeOverride(name = "preMatch.fullTime.coefficientTo", column = @Column(name = "preMatchFullTimeHandicapCoefficientTo")),
            @AttributeOverride(name = "preMatch.fullTime.coefficientFrom", column = @Column(name = "preMatchFullTimeHandicapCoefficientFrom")),
            @AttributeOverride(name = "preMatch.halfTime.coefficientTo", column = @Column(name = "preMatchHalfTimeHandicapCoefficientTo")),
            @AttributeOverride(name = "preMatch.halfTime.coefficientFrom", column = @Column(name = "preMatchHalfTimeHandicapCoefficientFrom")),

            @AttributeOverride(name = "preMatch.fullTime.stepsCountTo", column = @Column(name = "preMatchFullTimeHandicapStepsCountTo")),
            @AttributeOverride(name = "preMatch.fullTime.stepsCountFrom", column = @Column(name = "preMatchFullTimeHandicapStepsCountFrom")),
            @AttributeOverride(name = "preMatch.halfTime.stepsCountTo", column = @Column(name = "preMatchHalfTimeHandicapStepsCountTo")),
            @AttributeOverride(name = "preMatch.halfTime.stepsCountFrom", column = @Column(name = "preMatchHalfTimeHandicapStepsCountFrom")),

            @AttributeOverride(name = "preMatch.fullTime.matchMinuteTo", column = @Column(name = "preMatchFullTimeHandicapMatchMinuteTo")),
            @AttributeOverride(name = "preMatch.fullTime.matchMinuteFrom", column = @Column(name = "preMatchFullTimeHandicapMatchMinuteFrom")),
            @AttributeOverride(name = "preMatch.halfTime.matchMinuteTo", column = @Column(name = "preMatchHalfTimeHandicapMatchMinuteTo")),
            @AttributeOverride(name = "preMatch.halfTime.matchMinuteFrom", column = @Column(name = "preMatchHalfTimeHandicapMatchMinuteFrom")),

            @AttributeOverride(name = "preMatch.fullTime.includeHTMatchMinute", column = @Column(name = "preMatchFullTimeHandicapIncludeHTMatchMinute")),
            @AttributeOverride(name = "preMatch.halfTime.includeHTMatchMinute", column = @Column(name = "preMatchHalfTimeHandicapIncludeHTMatchMinute")),

    })
    private OddSettingsEntity handicap;

    ///...
    private OddSettingsEntity overUnder;

    @ElementCollection
    private Set<String> favorites = new HashSet<>();

    @ElementCollection
    private Set<String> leaguesBlackList = new HashSet<>();

}


Я решил сделать это все дело в одной таблице, но разбить на разные класс в Java. Но тут меня смущает то что у каждого поля oneXTwo, handicap, overUnder будет очень большое кол-во AttributeOverride ибо классы внутри них переиспользуются и имена полей пересекаются.

И вопрос: Лучше сделать так и забить на то что много аннотаций AttributeOverride будет или же сделать это дело отдельными таблицами?

Embedded подход мне кажется будет быстрее работать, но вот в плане кода печаль(

Что скажете?

К сообщению приложен файл. Размер - 21Kb
7 окт 19, 19:39    [21988719]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2539
ты знаешь что написано в чистом коде?
если повторение больше двух раз-твой код говно

в суть не вникал,но последняя портянка не тянет даже на то,чтобы ей после некачественного смузи подтереть свою 5ю точку)

циклоп ты же в люксофте был какое то время,неужели тебя не научили качественному коду)
7 окт 19, 19:58    [21988734]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
asv79, Кхм. А где тут повторение больше двух раз одного и того же кода? Ткни пальцем.
7 окт 19, 20:09    [21988747]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2089
Tsyklop,
Нужна структура базы, как тут рисуют чтобы моделировать правильно Модель в РСУБД.
7 окт 19, 20:14    [21988750]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2539
Tsyklop
asv79, Кхм. А где тут повторение больше двух раз одного и того же кода? Ткни пальцем.

ну я насчитал штук 60 анотаций одинаковых
я сомневаюсь что такую херню бы в прод выпустили
7 окт 19, 20:16    [21988754]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2089
Tsyklop,
Если формат файла XML, JSON то странно его отображать на таблицы в РСУБД.
Не находите?
7 окт 19, 20:18    [21988756]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2539
циклоп завязывай ты с фрилансом,не развиваешься ты и это очевидно
вроде хороший ты парень и мне хотел в реальности помочь,но движешься ты в тупик судя по всему
7 окт 19, 20:20    [21988757]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2539
PetroNotC Sharp
Tsyklop,
Если формат файла XML, JSON то странно его отображать на таблицы в РСУБД.
Не находите?

циклоп ушел во фриланс будучи джуном )
результат на лицо

в моем понимании фриланс это минимум полудохлый сеньер
в итоге циклоп за год остался на том же уровне к сожалению
7 окт 19, 20:24    [21988761]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2089
Tsyklop,
Запихни настройки в блоб в бд.
Как вариант.
7 окт 19, 20:25    [21988763]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
PetroNotC Sharp
Tsyklop,
Если формат файла XML, JSON то странно его отображать на таблицы в РСУБД.
Не находите?


Заказчик переносит Desktop приложение в веб. И эти самые настройки будут у каждого юзверя. JSON формат был на Desktop версии - там это было норм, а вот сейчас печаль, беда.

Предлагаете хранить настройки каждого юзверя в файлах?

P.S. Если что к настройкам будет частое обращение.
7 окт 19, 20:27    [21988768]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
asv79
Tsyklop
asv79, Кхм. А где тут повторение больше двух раз одного и того же кода? Ткни пальцем.

ну я насчитал штук 60 анотаций одинаковых
я сомневаюсь что такую херню бы в прод выпустили


Одинаковых? ну приведите пример.
7 окт 19, 20:28    [21988770]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
PetroNotC Sharp
Tsyklop,
Нужна структура базы, как тут рисуют чтобы моделировать правильно Модель в РСУБД.

Структура только строиться. Есть только таблица User с данным юзверя и все. Делаю дальше и вот уперся.
7 окт 19, 20:29    [21988771]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
asv79
циклоп завязывай ты с фрилансом,не развиваешься ты и это очевидно
вроде хороший ты парень и мне хотел в реальности помочь,но движешься ты в тупик судя по всему

А давайте Вы не будете указывать мне что делать и лучше за собой будете следить? откуда Вам знать развиваюсь я или нет? откуда Вам знать что за проект что Вы так судите? Если Вы такой умный - предлагайте модель лучше. А то п**еть и я могу.

P.S. отбило всякое желание с Вами вести разговор. Удачи.
7 окт 19, 20:30    [21988773]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2539
Tsyklop
asv79
пропущено...

ну я насчитал штук 60 анотаций одинаковых
я сомневаюсь что такую херню бы в прод выпустили


Одинаковых? ну приведите пример.

циклоп,давай обратно в люксофт)
весь это бекэнд фриланс такое себе развлечение
7 окт 19, 20:30    [21988774]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
asv79
PetroNotC Sharp
Tsyklop,
Если формат файла XML, JSON то странно его отображать на таблицы в РСУБД.
Не находите?

циклоп ушел во фриланс будучи джуном )
результат на лицо

в моем понимании фриланс это минимум полудохлый сеньер
в итоге циклоп за год остался на том же уровне к сожалению


ТА ОТКУДА ЕДРИТЬ ВАШУ НАЛЕВО ВЫ ЗНАЕТЕ НА КАКОМ Я УРОВНЕ? БЕСЯТ ТАКИЕ УШЛЕПКИ, КОТОРЫЕ ВОЗОМНИЛИ СЕБЯ ЦАРЯМИ И ВСЕ ЗНАЮЩИМИ И ВМЕСТО ТОГО ЧТО БЫ СКАЗАТЬ ПО ТЕБЕ П**ДЯТ НАПРАВО И НАЛЕВО. ЗАКАЛЕБАЛ, СВАЛИ С ТЕМЫ И ДАЙ ЛЮДЯМ ПОМОЧЬ НОРМАЛЬНО.
7 окт 19, 20:32    [21988778]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
asv79
циклоп,давай обратно в люксофт)
весь это бекэнд фриланс такое себе развлечение


Вы только трепаться и можете? я спросил конкретный вопрос - ответа нет. Значит Вы - трепач обыкновенный.
7 окт 19, 20:33    [21988780]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2089
Tsyklop
Предлагаете хранить настройки каждого юзверя в файлах?
веб это не десктоп.
Разделить на настройки ГУИ. Эти в куки.
Настройки БЛ в базу.
Настройки админа в файлы.
...
Если крайне нужно дерево, то таблица parent_id, id, name.
7 окт 19, 20:33    [21988781]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
PetroNotC Sharp
Tsyklop,
Запихни настройки в блоб в бд.
Как вариант.


Хм. кстати мысль.и потом этот Blob мапить на классы джавишные? когда нужны настройки
7 окт 19, 20:33    [21988782]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2539
Tsyklop
asv79
циклоп завязывай ты с фрилансом,не развиваешься ты и это очевидно
вроде хороший ты парень и мне хотел в реальности помочь,но движешься ты в тупик судя по всему

А давайте Вы не будете указывать мне что делать и лучше за собой будете следить? откуда Вам знать развиваюсь я или нет? откуда Вам знать что за проект что Вы так судите? Если Вы такой умный - предлагайте модель лучше. А то п**еть и я могу.

P.S. отбило всякое желание с Вами вести разговор. Удачи.

почему то люди всегда не любят слышать о себе правду)
почему ты ушел из люксофта будучи вялым джуном
7 окт 19, 20:34    [21988783]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
PetroNotC Sharp
веб это не десктоп.
Разделить на настройки ГУИ. Эти в куки.
Настройки БЛ в базу.
Настройки админа в файлы.
...
Если крайне нужно дерево, то таблица parent_id, id, name.


Я понимаю. Все те настройки для бэка нужны. Настраиваются с фронта.
7 окт 19, 20:34    [21988784]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2089
Tsyklop
Blob мапить на классы
сериализация
7 окт 19, 20:35    [21988785]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
asv79
почему то люди всегда не любят слышать о себе правду)
почему ты ушел из люксофта будучи вялым джуном

Это не Вашего ума дело почему я ушел. Вас это никаким образом не касается. Я тут что бы услышать советы более опытных людей, а не выскочек как Вы. Которые бла-бла-бла, а сами по делу сказать нечего не могут.
7 окт 19, 20:36    [21988787]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
PetroNotC Sharp
Tsyklop
Blob мапить на классы
сериализация


да-да. понимаю.
7 окт 19, 20:36    [21988788]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1069
asv79
почему то люди всегда не любят слышать о себе правду)
почему ты ушел из люксофта будучи вялым джуном


Идите к бабкам на скамейку и обсуждайте кто куда пришел или откуда ушел. Мне это не интересно от слова СОВСЕМ.
7 окт 19, 20:37    [21988789]     Ответить | Цитировать Сообщить модератору
 Re: Embedded или отдельные Entity? Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2089
Tsyklop
Я понимаю. Все те настройки для бэка нужны. Настраиваются с фронта.
если дерево, то 3 поля выше и без хибера.
Либо в блоб и class.saveToBlob, loadFromBlob(stream....
7 окт 19, 20:37    [21988792]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Java Ответить