多くのフィールドを持つフォームがあります。このフィールドを mongodb のコレクションに保存したいと考えています。ユーザーがテキストフィールドに入力しない場合は、このフィールドをコレクションに保存しないでください。
私はDistrict
エンティティを持っています。このエンティティには、別の 2 つのエンティティ (contact
とaddress
) が含まれています。
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;
}
連絡先には、次の 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
、null値を持つフィールドが表示されます)。
....
if(jTextField4.getText()!="")
{
contact.setName(jTextField4.getText());
}
....
この仕事を手伝ってくれませんか?
ありがとう