Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

PwnT^

[Java][JavaScript] AngularJS + Spring JPA

Rekomendowane odpowiedzi

Mam problem z odczytaniem obiektów z jsona. Json+hal został wygenerowany przez Spring Data Rest.

Encja

@Entity
public class Discovery  {

   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Long discoveryId;
   private String name;
   @Column(length = 1024)
   private String description;
   private String url;
   private Timestamp date;
   private int upVote;
   private int downVote;

   @ManyToOne(targetEntity = User.class)
   private User user;

   @OneToMany(mappedBy = "discovery", targetEntity = Vote.class,
           fetch = FetchType.EAGER, cascade = CascadeType.ALL)
   private List<Vote> votes = new ArrayList<>();

//Konstruktory, getery itp..

 

app.js

'use strict';

angular.module('app', ['ngRoute', 'ngResource'])
   .config(function ($routeProvider) {
       $routeProvider
           .when('/list', {
               templateUrl: 'partials/list.html',
               controller: 'ListController',
               controllerAs: 'listCtrl'
           })
           .when('/details/:id', {
               templateUrl: 'partials/details.html',
               controller: 'DetailsController',
               controllerAs: 'detailsCtrl'
           })
           .when('/new', {
               templateUrl: 'partials/new.html',
               controller: 'NewController',
               controllerAs: 'newCtrl'
           })
           .when('/login', {
               templateUrl: 'partials/login.html',
           })
           .otherwise({
               redirectTo: '/list'
           });
   })
   .constant('DISCOVERY_ENDPOINT', '/api/discoveries:id')
   .factory('Discovery', function($resource, DISCOVERY_ENDPOINT) {
       return $resource(DISCOVERY_ENDPOINT);
   })
   .service('Discoveries', function(Discovery) {
       this.getAll = function () {
           return Discovery.query();
       }
       this.get = function (index) {
           return Discovery.get({id: index});
       }
       this.add = function (discovery) {
           discovery.$save();
       }
   })
   .controller('ListController', function(Discoveries) {
       var vm = this;
       vm.discoveries = Discoveries.getAll();
   })
   .controller('DetailsController', function($routeParams, Discoveries) {
       var vm = this;
       var discoveryIndex = $routeParams.id;
       vm.discovery = Discoveries.get(discoveryIndex);
   })
   .controller('NewController', function(Discoveries, Discovery) {
       var vm = this;
       vm.discovery = new Discovery();
       vm.saveDiscovery = function() {
           vm.discovery.downVote = 0;
           vm.discovery.upVote = 0;

           Discoveries.add(vm.discovery);
           vm.discovery = new Discovery();
       }
   });

 

Nic nie działa, także zapisywanie, najpierw chciałbym chociaż odczytać obiekty.

 

fragment odpowiedzialny za wyswietlanie ( działało bez backendu )

<div ng-repeat="disc in listCtrl.discoveries">
   <div  class="container" >
       <div class="jumbotron">
           <h1 ng-bind="disc.name  "></h1>
           <p class="lead" ng-bind="disc.description"></p>
           <a class="btn btn-lg btn-primary" href="#!details/{{disc.id}}" role="button">Read »</a>
       </div>
   </div>
</div>

 

Blad z konsoli

angular.js:14700 Error: [$resource:badcfg] Error in resource configuration for action `query`. Expected response to contain an array but got an object (Request: GET /api/discoveries)
http://errors.angularjs.org/1.6.6/$resource/badcfg?p0=query&p1=array&p2=object&p3=GET&p4=%2Fapi%2Fdiscoveries
   at angular.js:116
   at $http.then.response.resource (angular-resource.js:762)
   at processQueue (angular.js:17051)
   at angular.js:17095
   at Scope.$digest (angular.js:18233)
   at Scope.$apply (angular.js:18531)
   at done (angular.js:12547)
   at completeRequest (angular.js:12785)
   at XMLHttpRequest.requestLoaded (angular.js:12702) "Possibly unhandled rejection: {}"

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Patrzyłeś, co dostajesz w JSONie z backendu? Wg err msg dostałeś object zamiast array. $resource ma pole do konfiguracji, czy ma oczekiwać array czy object.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak, bawiłem się z biblioteka angular-spring-data-rest, ale coś nie szlo, w końcu wywalilem spring date rest, sam zdefiniowalem endpointy i mam spokój.

 

W międzyczasie natknąłem się na duzo problemow z JPA przez wiązania. Chyba z JDBC byłoby łatwiej. Takie mam odczucia

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak, bawiłem się z biblioteka angular-spring-data-rest, ale coś nie szlo, w końcu wywalilem spring date rest, sam zdefiniowalem endpointy i mam spokój.

 

W międzyczasie natknąłem się na duzo problemow z JPA przez wiązania. Chyba z JDBC byłoby łatwiej. Takie mam odczucia

 

Jakie problemy?

ORM to dość potężne narzędzie i trzeba dobrze zrozumieć jak działa by wydajnie z nim pracować.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...