2013-07-10 33 views
0

我有一个包含很多字段的表单,我想将这些字段保存在一个集合中的mongodb中。我希望如果用户不填充文本字段,则不应将该字段保存在集合中。我不想在MongoDB中使用Morphia存储空值的字段

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

的区级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; 
    } 
... 

和我的形式lokks这样的:

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()); 
     } 
.... 

能否请你帮我做这份工作吗?

感谢

回答

0

使用String#equals比较String内容。 ==运算符比较对象引用。 JTextField#getText返回一个不同的String对象,与被比较的被阻止的对象""相比,因此从不设置该对象的字段值。

if (jTextField4.getText().equals("")) { 
    contact.setName(jTextField4.getText()); 
} 
相关问题