Aktywne Wpisy
![dewey](https://wykop.pl/cdn/c3397992/dewey_k4dVwMyQEy,q60.jpg)
dewey +142
Pochwale się wczorajszym zakupem. Nie sądziłem, że mój SMP300 wskoczy tak łatwo do rotomatu. Zakochałem się.
#zegarki #watchboners
#zegarki #watchboners
![dewey - Pochwale się wczorajszym zakupem. Nie sądziłem, że mój SMP300 wskoczy tak łat...](https://wykop.pl/cdn/c3201142/b44754041f950a0b66517bfe1046ff35f8c234284ae867910053f6c2cd31656e,w150.jpg?author=dewey&auth=ad53cfe1bcdb955add95cd3057942c66)
![WillyJamess](https://wykop.pl/cdn/c3397992/WillyJamess_MMn7J1ldW5,q60.jpg)
WillyJamess +201
![WillyJamess - Jak oderwanym od rzeczywistości trzeba być, żeby w parkometrze zrobić k...](https://wykop.pl/cdn/c3201142/f47b119de33af09dc45ee452cd1b0fd9d5c1d393cde9cb14cea42a00fdb7cd77,w150.jpg?author=WillyJamess&auth=95c26c311cd8e4bc0502474149489154)
Skopiuj link
Skopiuj linkWykop.pl
Pisałem w sobotę pod tagami #java #naukaprogramowania #spring #hibernate o mojej pierwszej aplikacji (Blog).
https://github.com/nuker92/MyBlog
Właściwie mam już prawie wszystko co chciałbym zrobić, natomiast mam problem z dwoma rzeczami a chciałbym zapytać o jedną.
1) Mam kontroler: https://github.com/nuker92/MyBlog/blob/master/src/main/java/com/ochodek/blog/controller/UserController.java
a w nim metodę removeComment (na samym dole), do usuwania komentarzy. W metodzie tej jest wywoływana metoda stąd:
https://github.com/nuker92/MyBlog/blob/master/src/main/java/com/ochodek/blog/service/CommentService.java
(do usunięcia komentarza) ale oznaczona adnotacją
jednak kiedy wywołuję tą metodę wyskakuje mi błąd, że nie może dostać się do nazwy użytkownika, pełna treść tutaj:
http://pastebin.com/Ksnv8X4M
przyczyną jest chyba LazyInitializationException, ale nie wiem jak sobie z tym poradzić a próbowałem wielu rozwiązań z pierwszych stron google, tutaj są klasy:
comment: https://github.com/nuker92/MyBlog/blob/master/src/main/java/com/ochodek/blog/entity/Comment.java
user: https://github.com/nuker92/MyBlog/blob/master/src/main/java/com/ochodek/blog/entity/User.java
2) Chcę sobie zmienić bazę danych na PostgreeSQL, w tym celu zrobiłem tak jak gościu na tutorialu, czyli w moim applicationContext usunąłem Beany związane z HSQL i wkleiłem to:
http://pastebin.com/8YLtNUu7,
jednak podczas uruchamiania wali mi takim błędem:
http://pastebin.com/gqSGAtkN
i po raz kolejny nie wiem jak sobie z tym fantem poradzić
3) Czy powinienem coś w takiej aplikacji komentować? Wydaje mi się, że nie ma tam nic skomplikowanego, a wszystkie metody mają co najwyżej parę linijek kodu i dla każdej osoby która ma minimalne pojęcie będzie to wszystko zrozumiałe po samych nazwach metod.
Z góry dziękuje za pomoc
1) Prawdopodobnie potrzebujesz open session in view filter lub eager load. Hibernate domyślnie nie wczytuje wszystkich referencji/relacji więc możesz razem z komentarzem doczytywać od razu usera lub skorzystać z obejścia, które podtrzymuje sesję hibernate.
2) Do wczytywania konfiguracji najlepiej użyj tradycyjnego PropertyPlaceholderConfigurer. To, co próbujesz zrobić to ewidentny hack w XML + EL. Możesz wówczas używać składni ${propertyname} w XMLu
3) Komentarze zawsze przydatne w miejscach które są najbardziej mętne.
#comment.user.name == authentication.name or hasRole('ROLE_ADMIN')'
masz błąd składniw drugim wypadku gdzie masz zdefiniowany bean o nazwie dataSource ?
po trzecie to pisz samokomętujący się kod :) czyli jeżeli odczuwasz potrzebę napisania komentarza do kodu to napisałeś brzydki zły kod, który się nie nadaje. Są sytuacje gdzie trzeba napisać komentarz
1) Noo tak, nie może sobie sparsować z powodu tego, że nie może dostać się do nazwy użytkownika który napisał komentarz. Ale dobra to mi się udało poprawić
@badAttitude: @splatch:
3) oki
2) A, już się dowiedziałem, że ta konfiguracja którą użyłem działa tylko na heroku, a na localhoscie nie. Teraz mam tylko takie pytanie, jak ustawić bazę danych?
Mam teraz coś takiego:
http://pastebin.com/q57UqqJi
http://pastebin.com/67DwqmPK - plik properities
Trik z URI prawdopodobnie zadziała jeśli ustawisz system property. Możesz to spróbować zrobić przez -DpropertyName=value podczas uruchamiania tomcata.