Isso mesmo Hugo,
a persistência vai ser uma camada do seu servidor, portanto você deverá disponibilizar uma camada de serviço no server que será consumida pelo cliente com o Angular e que terá acesso a sua camada de persistência.
No seu caso que utiliza Java tem diversas opções, desde um servlet até um serviço REST utilizando JaxWS, assim como poderá utilizar algum framework de sua preferência, como o SpringMVC ou VRaptor.
Com o Angular você somente poderá armazenar os dados localmente no cliente, o que também é interessante caso você deseje ter Sincronização em Tempo Real no seu sistema, que é a possibilidade do usuário trabalhar offline e o seu aplicativo sincronizar os dados automaticamente quando a conexão voltar, assim como eh feito com o WhatsApp e Evernote.
Segue mais detalhes sobre o armazenamento local de dados com Angular no link abaixo:
https://docs.google.com/document/d/1DMacL7iwjSMPP0ytZfugpU4v0PWUK0BT6lhyaVEmlBQ/mobilebasic
Sobre o seu serviço disponibilizado no server, VC pode encontrar diversos cursos sobre as tecnologias que eu comentei na trilha de Java para Desenvolvimento Web do Alura.
Att.