0

我有一个包含许多字段的表单,我想将这些字段保存在 mongodb 中的集合中。我想如果用户没有填写文本字段,那么这个字段不应该保存在集合中。

我有一个District实体。该实体包含另外两个实体 (contactaddress)。

District 类 lokks 是这样的:

public class District {
    @Id private ObjectId id;
    private String Type;
    private String Name;
    private Contact contact;
    private  Address address;

    /**
     * @return the Type
     */
    public String getType() {
        return Type;
        }
....

    /**
     * @param Type the Type to set
     */
    public void setType(String Type) {
        this.Type = Type;
    }

对于联系,我有这个 Java 类:

@Embedded
public class Contact {
    private String email;
    private String fax;
    private String firstname;
    private String lastname;
    private String gender;
    private String telephone;
    private String title; 

    /**
     * @return the email
     */
    public String getEmail() {
        return email;
    }

    /**
     * @param email the email to set
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * @return the fax
     */
    public String getFax() {
        return fax;
    }

    /**
     * @param fax the fax to set
     */
    public void setFax(String fax) {
        this.fax = fax;
    } 
...

我的表格是这样的:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       Mongo mongo = null;
        try {
            mongo = new Mongo();
        } catch (UnknownHostException ex) {
            Logger.getLogger(TestForm.class.getName()).log(Level.SEVERE, null, ex);
        }
        Morphia morphia=new Morphia();
        morphia.map(District).map(Contact).map(Address);


      District district=new District();


      district.setName(jTextField2.getText());
      district.setType(jTextField3.getText());

      Address address=new Address();
      address.setCity(jTextField11.getText());
      address.setStreet(jTextField10.getText());
      address.setZipcode(jTextField9.getText());
....
 Datastore ds=morphia.createDatastore(mongo, "rcfdb");
      ds.save(district);

我想如果用户没有填写Name表单中的字段,那么这个字段就不会写在 MongoDB 中。(现在我看到该字段,即Name具有空值)我试图这样做,但这对我没有帮助:

....
if(jTextField4.getText()!="")
       {
         contact.setName(jTextField4.getText());
       }
....

你能帮我做这份工作吗?

谢谢

4

1 回答 1

0

用于String#equals比较String内容。运算符比较==对象引用。与被比较的实习对象相比,JTextField#getText返回一个不同的对象,因此永远不会设置的字段值。String""Entity contact

if (jTextField4.getText().equals("")) {
   contact.setName(jTextField4.getText());
}
于 2013-07-10T10:01:33.583 回答