luchob/softuni-sep-2023

Mobilele-update-and-issue

Closed this issue · 7 comments

Връзка към проекта:

(https://github.com/D00ktora/LuchoBalev_Mobilele/tree/main/mobilele)

Кратко описание:

Проблем с SQL-а, последния импорт не минава и ми дава грешка.

Променени неща
User класа :
Добавено BaseEntity, за да нямаме повторение на един и същ код за ИД.
Добавени са всички полета от описанието на проекта, като на вече създадените не са променени имената. (UserRole което е maping; imageUrl, created, modified) + get and set methods.
Добавено ентити. UserRole от проекта.
Добавено ентити. Brand.
Добавено ентити. Model. За него е създаден допълнителен Enum, който държи категорията. Направена е връзка с Brand.
Добавено ентити. Offer. Тук са добавени и два enum класа Engine and Transmission. Също така връзка с UserEntity и Model.

Възможно най-накратко опишете:

  1. Какво очаквате да се случи --> Помощ с проблема с SQL-a
  2. Какво всъщност се случва --> Нямам представа.
  3. Какво опитахте --> Премахвах нот-нулл от полетата в ентититата, премахвах връзки и не можах да го накарам да се качи.

Стъпки за репродуциране:

Опишете възможно най-лесните стъпки, с помощта на които може да се репродуцира проблемът.

Вариант едно ако има вече вдигната база е да се пусне ръчно файла, като преди това трябва да се закоментира метода init().
Вариант две е старт на приложението и то гърми. :)

luchob commented

Привет!

В проекта, който виждам тук -> https://github.com/D00ktora/LuchoBalev_Mobilele

Няма все още никаква промяна, последният комит е мой.
Допускам, че си комитнал нещо, но не си го push-нал в github. Така че, засега ще оставя issue–то отворено и ще почакам да дойде push :-)

Поздрави,
Л.

Ох да видях го, не знам как се получава това, много ми е дива Индия гитХъб.
Мисля че сега е готово.
Вчера до 00:00 си играх и проблема мисля че е в някое ИД от офертите, защото ги изтрих, и след това започнах една по една да ги добавям и в един момент гръмна, но стана късно и реших днес да продължа ако намеря време. Все пак ако ги видиш преди мен, благодаря

Така, Лъчо намерих проблема.

Когато кажа че енъма е ординал индексира не от 1 а от 0. Предполагам че винаги е било така, но сиг. съм се замотал от това че пиша sql. Та преправих всички енъмски индекси да започват от 0 и заспа. Комитвам го отново, погледни го, до края на деня или до края на утрешния ден, трябва да съм изпълнил всичко което е посочено от СофтУни като задача. Ако нещо от там е ОК и ти трябва в мобилелето, което правим може да го вземеш :) Информацията за базата ми е коректна до офертите, офертите са измислени само.

Също забелязах следното нещо с което не можах да се преборя, за UserRoles, по картинката трябва да се направи таблица, а по условие в текста трябва да се направи Енъм. Понеже не можах да го докарам с Енъм съм го направил с таблица, както е по картинката.
Последно, не към този топик, но може би в част свързано с него. Може ли да направиш нещо като кратко видео, как с терминала навигираш в репозиторитата си, как се логваш от там, как фечваш (примерно аз искам да фечвам твоята директория след лекция и да допълвам каквото е останало по условие), как пушваш в различните проекти (защото започнах и крайния си проект, където фронт ендра ще ме забави най-мново). А за сменя от един проект на друг се лутам, правя някакви работи дето не са ми ясни и ми дава грешки. Вчера по някакъв начин върнах всичко написано до фаза в която го бях изтеглил от твоето репозитори. Добре че съм си пратил всичко на служебния комп за да си ги препратя отново. Благодаря ти много.

И отново с риск да се повторя-потретя-попетя, разясняваш много добре, малко са хората като теб !!! :)

luchob commented

Привет! Да бъде enum не е трудно. Ето пример:

@Entity
@Table(name = "roles")
public class UserRole extends BaseEntity {
    @NotNull
    @Enumerated(EnumType.STRING)
    private Role name;

    public Role getName() {
        return name;
    }

    public UserRole setName(Role name) {
        this.name = name;
        return this;
    }
}

Има нужда само от анотацията @Enumerated, за да му подскажеш дали да записва enum-a като число или пък като стринг. По подразбиране ги прави като числа, което пък не е от най четимите неща на света и ако решиш да разместиш нещо става малко тегаво :-)

Може би е по-добре да направим връзката user<->role като many to many за да не се дуплицират разни роли. Т.е. да имаш само 2 роли, N потребителя и за всеки потребител 0, 1 или 2 реда в свързващата таблица.

Тегаво е това с видеото но ако остане време може да се пробвам (водя и едно курсче с младежите от BG JUG) и там също ми отиват малко ресурси :-)

Поздрави,
Л.

Здравей,
Вярно че така беше с анотация. Днес ще го променя.
И всичко вече от първите задачи трябва да е Ок и това репо.

luchob commented

BTW, може би тук има нещо като тъториъл от нашата java юзър група:

https://www.youtube.com/watch?v=s2buYWqx4Bw