2015-09-21 2 views
0

Это то, что я есть:Проблемы с хранением данных в базу данных с помощью angularjs и пружины загрузки

user.java

@Entity 
public class User { 

    @Id 
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    private Integer id; 

    @Column 
    private String username; 

    @Column 
    private String password; 

    @Column 
    private String lastname; 

    public Integer getId() { 
     return id; 
    } 

    public String getLastname() { 
     return lastname; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public String getUsername() { 
     return username; 
    } 
} 

UserController.java

@RestController 
@RequestMapping("/user") 
public class UserController { 
    @Autowired 
    private UserRepository repo; 

    @RequestMapping(method = RequestMethod.POST) 
    public User addUser(@RequestBody User user) { 
     return repo.saveAndFlush(user); 
    } 

user.service.js

примечание: здесь консоль выводит 3 значения имени пользователя, пароля и имени.

function Create(user) { 

     console.log(user.username) 
     console.log(user.password) 
     console.log(user.lastName) 


     return $http.post('/user', user).then(handleSuccess, handleError('Error creating user')); 
    } 

registration.controller

(function() { 
    'use strict'; 

    angular 
     .module('app') 
     .controller('RegisterController', RegisterController); 

    RegisterController.$inject = ['UserService', '$location', '$rootScope', 'FlashService']; 
    function RegisterController(UserService, $location, $rootScope, FlashService) { 
     var vm = this; 

     vm.register = register; 

     function register() { 
      vm.dataLoading = true; 
      UserService.Create(vm.user) 
       .then(function (response) { 
        if (response.success) { 
         FlashService.Success('Registration successful', true); 
         $location.path('/login'); 

        } else { 
         FlashService.Error(response.message); 
         vm.dataLoading = false; 
        } 
       }); 
     } 
    } 

})(); 

registration.html

<div class="container" ng-controller="RegisterController as vm"> 
<div class="col-md-6 col-md-offset-3"> 
    <h2>Register</h2> 
    <div ng-show="vm.error" class="alert alert-danger">{{vm.error}}</div> 
    <form name="form" ng-submit="vm.register()" role="form"> 


     <div class="form-group" ng-class="{ 'has-error': form.lastName.$dirty && form.lastName.$error.required }"> 
      <label for="lastName">Last name</label> 
      <input type="text" name="lastName" id="lastName" class="form-control" ng-model="vm.user.lastName" required /> 
      <span ng-show="form.lastName.$dirty && form.lastName.$error.required" class="help-block">Last name is required</span> 
     </div> 

     <div class="form-group" ng-class="{ 'has-error': form.username.$dirty && form.username.$error.required }"> 
      <label for="username">Username</label> 
      <input type="text" name="username" id="username" class="form-control" ng-model="vm.user.username" required /> 
      <span ng-show="form.username.$dirty && form.username.$error.required" class="help-block">Username is required</span> 
     </div> 


     <div class="form-group" ng-class="{ 'has-error': form.password.$dirty && form.password.$error.required }"> 
      <label for="password">Password</label> 
      <input type="password" name="password" id="password" class="form-control" ng-model="vm.user.password" required /> 
      <span ng-show="form.password.$dirty && form.password.$error.required" class="help-block">Password is required</span> 
     </div> 
     <div class="form-actions"> 
      <button type="submit" ng-disabled="form.$invalid || vm.dataLoading" class="btn btn-primary">Register</button> 
      <img ng-if="vm.dataLoading" src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==" /> 
      <a href="#/login" class="btn btn-link">Cancel</a> 
     </div> 
    </form> 
</div> 
</div> 

Но по какой-то причине это результат пользователю.

{id: 1, username: "33", password: "33", lastname: null} 
id: 1 
lastname: null 
password: "33" 
username: "33" 

Независимо от того, что я делаю, он продолжает говорить null. И я действительно не знаю, чего мне не хватает

У кого-нибудь есть ключ к этому. Кажется, я все время забываю.

+1

'lastName'! =' Lastname'. Имена ваших свойств не совпадают. –

+0

Я искал 2 часа .. Но что-то еще происходит, он говорит, что bad sql grammar last_name не определяет. Поэтому я меняю имя lastname на last_name, но откуда это происходит ... – Greg

+1

Измените поле на клиенте с 'lastName' на' lastName', не измените имя на сервере. (Или укажите имя столбца в аннотации '@ Column '). –

ответ

1

Ваш вид и служба определяют данные для lastname как lastName, ваша модель находится в нижнем регистре.

+0

Я искал 2 часа .. Но что-то еще происходит, он говорит, что bad sql grammar last_name не определяет. Поэтому я изменяю имя lastname на last_name, но где это происходит ... – Greg

+0

Похоже, что вы не изменили его в базе данных соответственно. – Lukehey

Смежные вопросы