2013-07-10 5 views
0

많은 필드가있는 양식이 있는데이 필드를 컬렉션의 mongodb에 저장하려고합니다. 사용자가 텍스트 필드를 채우지 않으면이 필드를 컬렉션에 저장하면 안됩니다.Morphia를 사용하여 MongoDB에 필드 값을 저장하지 않으려 고합니다.

나는 District 개체가 있습니다. 이 엔터티에는 다른 두 엔터티 (contactaddress)가 포함되어 있습니다. 이 같은

지구 클래스 lokks이 같은

@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); 

나는 경우 원하는 연락처로 문의

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; 
    } 

나는이 자바 클래스가 사용자가 양식의 Name 필드를 채우지 않으면이 필드는 MongoDB에 기록되지 않습니다. (지금 나는 그렇게하려고 노력) 널 (null) 값 필드 즉 Name를 볼 수 있지만 그 didnt가 나를 도와 :

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

당신이 내게이 일을 도와 주실 수 있을까요?

감사

답변

0

사용 String#equalsString 내용을 비교합니다. == 연산자는 개체 참조를 비교합니다. JTextField#getText은 다른 String 개체를 반환합니다. 따라서 Entitycontact 필드 값은 설정되지 않습니다. 따라서 개체는 비교되는 보조 개체 ""과 비교됩니다.

if (jTextField4.getText().equals("")) { 
    contact.setName(jTextField4.getText()); 
} 
관련 문제