当前位置: 首页 > 知识库问答 >
问题:

无法将静态字段从java更新到mongodb

韶浩博
2023-03-14

当我试图从java向Mongo DB插入记录时,我无法更新静态字段。

  Class1

public class User{

 private String userName;
  private String id;
 private static List<Address> addresses;
  public static List<Address> getAddresses() {
    return addresses;
 }

public static void setAddresses(List<Addresses> addresses) {
    Class1.addresses = addresses;
}

 //getter and setters

 } 

 Class2

 public class Address{

  private String street,
 private String city
 }

  Update.java

User user = new User();
List<Address> add = new ArrayList<Address>();
add.setStreet("CrossWave Street");
add.setCity("Lucia");
user.setUserName("Roy");
user.setId("100");
 User .setAddresses(add);
db.save(user,Class1.class)

在这个过程之后,我无法在数据库中看到地址字段。我知道静电场有问题,但我很困惑

共有2个答案

孙风畔
2023-03-14

您似乎无法将静态字段与对象一起保存,因为它们不属于该类的任何实例。

堵毅然
2023-03-14

静态字段位于类级别。MongoDB文档仅适用于对象级字段。为什么需要使用静态字段?

 类似资料:
  • 我有一个私有int数组,我需要以某种方式找到长度,但在静态类下无法做到这一点。我必须保持类的静态,是否可以添加其他方法来将a.length更改为其他方法? 该问题是由a.length引起的。

  • 使用泛型,类型参数不允许是静态的。 由于静态变量在对象之间共享,因此编译器无法确定要使用的类型。 如果允许静态类型参数,请考虑以下示例。 例子 (Example) package com.wenjiangs; public class GenericsTester { public static void main(String[] args) { Box<Integer> in

  • 问题内容: 只是为了澄清我正在考虑的这个权利,在Java中,静态字段是整个类使用的变量/字段,还是可以用于引用该类的所有对象?非静态字段是由对象定义的变量吗?并且与对象1引用相同类的第二个对象可以具有与对象1的静态字段不同的值吗? 问题答案: 与实例变量不同,在创建该类的实例之前,可以访问该类中的静态字段或静态类变量。在运行时创建该类的实例时,将创建该类中的实例变量(非静态变量)。因此,直到创建该

  • 我想澄清一下,在java中,静态字段是整个类使用的变量/字段,或者可以被引用该类的所有对象使用?非静态字段是由对象定义的变量?第二个对象引用与对象1相同的类,它可以对对象1的静态字段具有不同的值?

  • 问题内容: 此代码有效吗? 使用JDK 1.6.0.23的用户可以接受此操作,但是使用JDK 1.6.0.23的2.2.1可以显示以下编译错误: c在A中具有受保护的访问 问题答案: 我想我知道这里发生了什么。注释的实例实际上是具有唯一静态初始化程序的接口。注释规范在顶部添加的唯一内容是语法糖和方法,类或字段的链接。因此,当您键入时,几乎就像在注解中添加了静态初始化器一样。注释不是A的子类,因此访

  • 我试图更新mongodb集合的某个值,但没有成功,它只更新一个字段,而不更新另一个字段,下面是我的代码, 模式: 下面是控制台结果,其中包含mongoose调试 猫鼬:clients.findone({_id:ObjectId(“57AA0403B8F3786D09D8C626”)}){fields:未定义} 之前的数据:{datePayment:2016-08-09T18:03:07.501z,