Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 插入到api的列表字段,邮递员返回ok,heroku部署的api字段为空_Java_Spring_Api_Hibernate_Heroku - Fatal编程技术网

Java 插入到api的列表字段,邮递员返回ok,heroku部署的api字段为空

Java 插入到api的列表字段,邮递员返回ok,heroku部署的api字段为空,java,spring,api,hibernate,heroku,Java,Spring,Api,Hibernate,Heroku,我正在用spring jpa和angular构建一个api rest。此api有一个列表字段“tags”,可通过postman with POST方法正确发布: 但当我转到部署在heroku中的api时,标记字段为空: {"id":3164,"name":"Iñaki","surname":"Williams","dni":"19238191G",&quo

我正在用spring jpa和angular构建一个api rest。此api有一个列表字段“tags”,可通过postman with POST方法正确发布:

但当我转到部署在heroku中的api时,标记字段为空:

{"id":3164,"name":"Iñaki","surname":"Williams","dni":"19238191G","address":"calle almanaque,Madrid","mail":"williams@iñaqui.com","phone":"9373482382","linkedln":"https://www.linkedin.com/
在/sara-b-54b93543/“,”状态“:”por validar“,”评级“:”67“,”可用性“:”tardes“,”标签“:[]}]

我的专家模型:

@Entity
@Table(name="experts")
public class Expert {

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

    private String name;
    private String surname;
    private String dni;
    private String address;
    private String mail;
    private String phone;
    private String linkedln;
    private String state;
    private String rating;
    private String availability;


    @ManyToMany(mappedBy="expert", cascade = CascadeType.ALL,fetch = FetchType.EAGER)
    private List<Tag> tags = new ArrayList<>();


    public Expert() {
    }

    public Expert(String name, String surname, String dni, String address, String mail, String phone, String linkedln, String state, String rating, List<Tag> tags, String availability) {
        this.name = name;
        this.surname = surname;
        this.dni = dni;
        this.address = address;
        this.mail = mail;
        this.phone = phone;
        this.linkedln = linkedln;
        this.state = state;
        this.rating = rating;
        this.tags = tags;
        this.availability = availability;
    }

知道为什么会发生这种情况吗?谢谢!!!

当您对实体执行@manytomy字段时,它会创建第三个表,在这两个表之间进行映射,我建议您执行以下操作:

  • 创建一个名为
    Response

  • 此类将具有与
    Expert
    相同的属性,但没有任何注释(它不是实体)

  • 每次有一个
    Expert
    实例时,创建一个
    Response
    实例,该实例采用相同的值

  • 在RestController上,让返回
    Expert
    类列表的方法返回
    Response
    列表,您将用
    Response
    实例填充该列表

     public class Response {
    
     private Long id;
     private String name;
     private String surname;
     private String dni;
     private String address;
     private String mail;
     private String phone;
     private String linkedln;
     private String state;
     private String rating;
     private String availability;
     private List<Tag> tags = new ArrayList<>()
     ...  
     }
    
    公共类响应{
    私人长id;
    私有字符串名称;
    私家姓;
    私有字符串dni;
    私有字符串地址;
    私人字符串邮件;
    私人电话;
    私有字符串链接;
    私有字符串状态;
    私人字符串评级;
    私有字符串可用性;
    私有列表标记=新的ArrayList()
    ...  
    }
    
   @Override
    public Expert postExpert(Expert expert) {
         this.manager.persist(expert);
         return expert;
    }
 public class Response {

 private Long id;
 private String name;
 private String surname;
 private String dni;
 private String address;
 private String mail;
 private String phone;
 private String linkedln;
 private String state;
 private String rating;
 private String availability;
 private List<Tag> tags = new ArrayList<>()
 ...  
 }