A relação @ManyToOne insere objetos nulos no Spring Data REST

Mellao

Sou novo no Spring Data REST e depois de criar com sucesso algumas entidades, estou enfrentando um problema. Eu tenho uma tabela shopping_list que contém alguns shopping_list_products, shopping_list_product tem uma relação com shopping_list, tudo isso dentro de um banco de dados mysql. O problema é que quando tento criar uma lista de compras com alguns produtos dentro, a lista é criada, mas não os produtos. Na resposta posso ver os produtos com id "null".

Estas são as classes (evitando getters / setters):

Lista de compras:

@Entity
@Table(name = "shopping_list")
public class ShoppingList {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private Date creationDate;
@RestResource(exported=false)
@OneToMany(mappedBy="shoppingList")
private List<ShoppingListProduct> shoppingListProducts;

ShoppingListProduct:

@Entity
@Table(name = "shopping_list_products")

public class ShoppingListProduct {
   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   private Long id;
   private String name;
   private boolean checked;
   @ManyToOne(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
   @JoinColumn(name = "shopping_list_id")
   private ShoppingList shoppingList;

E foi o que aconteceu quando tentei inserir alguns produtos com carteiro:

Eu insiro isto:

{
"name" : "name",
"creationDate" : "2018-12-12",
"shoppingListProducts" : [
        {
            "name" : "product 1",
            "checked" : false
        },
        {
            "name" : "product 2",
            "checked" : true
        }
    ]
}

E recebo uma resposta 201 (criada) com este resultado:

{
"name": "name",
"creationDate": "2018-12-12",
"shoppingListProducts": [
    {
        "name": "product 1",
        "checked": false,
        "resourceId": null
    },
    {
        "name": "product 2",
        "checked": true,
        "resourceId": null
    }
],
"resourceId": 60,
"_links": {
    "self": {
        "href": "http://localhost:8080/shoppingLists/60"
    },
    "shoppingList": {
        "href": "http://localhost:8080/shoppingLists/60"
    }
  }
}

Como você pode ver, o resourceId criado para os produtos em shoppingList é nulo e, se eu for para o banco de dados, nenhum produto será criado.

Não consigo encontrar qual é o problema, então eu realmente aprecio sua ajuda.

Obrigado!

Mellao

Bem, graças a @BillyFrost eu adicionei uma cascata em @OneToMany e depois disso recebi um erro 500 dizendo que shopping_list_id não pode ser nulo. Então, editei o setter de shoppingListProducts configurando a lista de compras atual, assim:

public void setShoppingListProducts(List<ShoppingListProduct> shoppingListProducts) {

    for (ShoppingListProduct sp : shoppingListProducts) {
            sp.setShoppingList(this);   
    }

        this.shoppingListProducts = shoppingListProducts;
}

E agora funcionou!

Muito obrigado por sua ajuda!

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Spring MVC + Thymeleaf - salvar relação @ManyToOne

Método de consulta no Spring Data JPA para a relação @ManyToOne

Consulta complexa com Spring Data (usando 2 tabelas com relação ManyToOne)

Spring data rest status 500 para entidade com relação

Não é possível salvar um relacionamento OneToMany / ManyToOne na solicitação Spring Data REST

O controlador Spring Boot converte objetos JSON em nulos

mostrar atributos nulos resposta json spring data rest?

Salve objetos aninhados com Spring Data REST

SQL não insere valores nulos com BULK INSERT

Spring Rest Hibernate OneToMany / ManyToOne

Spring Data Rest salvar registro com relação (chave estrangeira) em Java (repo.save ())

Spring Data, JPA @ManyToOne lazy inicialização não funciona

@ManyToOne Unidirecional não funciona no Spring JPA DATA

A atualização do Spring Data JPA torna alguns campos nulos

Spring Data JPA ManyToOne Bidirectional

Spring Data REST - Detectou vários links de associação com o mesmo tipo de relação

Ruby insere o objeto em uma matriz de objetos existentes

Como vincular entidades REST do Spring Data para transferir objetos?

Verificação de nulos de objetos aninhados

Objetos herdados são gerados como nulos

SPRING DATA JPA salvar relação @OneToMany

SPRING DATA JPA salvar relação @OneToMany

Associação no Spring Data Rest

EAP 7.3 JPA + Hibernate REST Serialização de relacionamento Bidirecional ManyToOne (NOT SPRING)

Spring Data JDBC exclui todas as entradas e as insere novamente

Spring Post Rest não pode analisar objetos no objeto

Spring Data Neo4j não insere um novo nó, apenas atualiza um existente que tem as mesmas propriedades

Spring Data JPA - Hibernate - OneToMany, ManytoOne bidirecional

django rest usa o campo do modelo de relação no filtro de objetos

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo