2017-06-03 1 views
0

私はSpringデータJPAを介してデータベースにユーザーデータを保存しようとしています。残念ながら、コントローラクラスでRegistrazioneServiceを呼び出すとnullになります。スプリングデータJPA - サービス常にnull

registrazioneController.java:それは通常のJSFコントローラです...

@ManagedBean(name="registrazioneController") 
@ViewScoped 
public class RegistrazioneController { 

private String username = ""; 
private String password = ""; 
private String repassword = ""; 
private String email; 


@ManagedProperty(value = "#{registrazioneService}") 
private RegistrazioneService registrazioneService; 

public void registraUser() { 

    System.out.println("inizio registrazione utente..."); 

    // si salva nel db il nuovo utente 
    User utente = new User(); 
    utente.setUsername(username); 
    utente.setPassword(password); 
    utente.setEmail(email); 
    utente.setDataCreazione(new Date()); 

    // di default si assegna all'utente il ruolo ROLE_USER 
    utente.setRole(Role.ROLE_USER); 

    registrazioneService.registraUtente(utente); 
} 

RegistrazioneService:

@Service 
public class RegistrazioneService { 

@Autowired 
UserRepository userRespository; 

@Transactional 
public void registraUtente(User user) { 
    System.out.println(("sono in registraUtente()")); 
    userRespository.save(user); 

} 
} 

、それはUserRepositoryです:

@Repository 
public interface UserRepository extends CrudRepository<User, Long> { 

} 

誰かが私を助けてくださいことはできますか?

+0

あなたのコントローラに 'setRegistrazioneService'を追加してください。 –

+0

インポートした '@ Service'アノテーションを再確認できますか? 'org.jvnet.hk2.annotations'または' org.springframework.stereotype'パッケージからですか? – harshavmb

答えて

-2

@ManagedProperty(value = "#{registrazioneService}")の代わりに@Autowiredを挿入しようとしましたか?

+0

はいそれはとにかくnullです – alex

+0

したがって、スプリングがBeanを注入できるようにコンストラクタを配置します。 public RegistrazioneController(登録サービス登録サービス){ this.registrazioneService = registrazioneService; } – mjayson

+0

何も...とにかくヌルです:( – alex

関連する問題