【问题标题】:How to save a list in an object using Java?如何使用Java将列表保存在对象中?
【发布时间】:2018-10-05 20:08:15
【问题描述】:

保存前

保存后

@Entity
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Notification {


  @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long notificationId;
    private Long businessId;
    private String actionBy;
    private String date;
    private String notification;
    public ArrayList<UserNotification> user;

  //constructor here

  //getters setters here
}

而 UserNotification.java 是

public class UserNotification {
private Long id;
private String user;
private String notifCount;
//getters setters here
}

我不知道为什么它返回 null。我在什么时候犯了错误?

编辑:

 var usersObj=[];
        BusinessRoleService.getByBusinessId($sessionStorage.businessRole.business).then(function(response){
            if(response.status==200){
                for(var x=0;x<response.data.length;x++){
                    usersObj.push({id: x, user: response.data[x].userId, notifCount: $scope.notification});
                }


            }
        });

        var obj = {
            "businessId": businessId,
            "actionBy": user,
            "date": date,
            "notification": user+" "+action,
            "user": usersObj
        }

然后我会将 obj 传递给我的服务进行保存

这是我的数据库保存后的样子

【问题讨论】:

  • 你的数组名是user,但应该是users,看看这个answer
  • 在您的 IndexController 中将列表名称用户更改为用户
  • Javascript 和 java 对象名都应该匹配
  • 请再次查看帖子。它现在保存但为空
  • 更新您的问题并提供完整的 Notification 和 UserNotification 类定义(带有每个注释)

标签: javascript java angularjs pojo


【解决方案1】:

在您的 Notification Java 对象中,user 属性具有 @Transient 注释。这意味着它不会被持久化。

因此,在控制器的响应中,该属性为 null。

正如其他人所说,您的 JavaScript 和 Java 结构也有所不同。在您的 Notification java 对象中,您的列表应命名为 users

上次修改后:

为什么UserNotification 不是@Entity?您还需要告诉 JPA 什么样的关系将NotificationUserNotification 联系在一起。我的猜测是两个类都缺少一堆注释。阅读本文:https://en.wikibooks.org/wiki/Java_Persistence/OneToMany

【讨论】:

  • 那我该怎么办?
  • 删除@Transient
  • 在您的 IndexController 中将列表名称用户更改为用户
  • 它仍然为空
  • @Lakshman 该死的没有注意到那个。它现在保存但它是空的
猜你喜欢
  • 2019-07-13
  • 2020-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 2018-07-02
相关资源
最近更新 更多