2014-12-03 2 views
1

Я использую Morphia + MongoDB в качестве основы для простой маски ввода CRUD.Morphia хранит пустые значения

готовится Рамочный простейший возможным путь, создавая новый MongoClient и инициализацию морфия так:

Morphia morphia = new Morphia(); 
morphia.mapPackage("it.trew.omg.model"); 

обоих случаев впрыскивают в DAO:

public class ClientiDao extends BasicDAO<Cliente, String> 

Моей сущность все еще довольно просто:

@Entity("clienti") 
public class Cliente { 

    @Id ObjectId id; 

    String name; 
    String address; 
    String city; 
    String state; 
    String email; 

    public Cliente() { 

    } 

// getters+setters 

} 

Предположим, что я создаю Клиента просто f игнорируя имя внутри моей формы.

Когда контроллер вызывает метод сохранения, операция прошла успешно:

getClientiDao().save(cliente); 

Но когда я запрашиваю коллекцию «Clienti» из консоли Монго я получаю это:

{ "_id" : ObjectId("547edf630364677dd2f911b8"), "className" : "it.trew.omg.model.Cliente", "name" : "Fabio Bozzo", "indirizzo" : "", "citta" : "", "cap" : "", "provincia" : "", "stato" : "", "email" : "", "telefono" : "", "fax" : "", "note" : "" } 

Я думал что пустые поля не были бы вставлены. Здесь что-то не так?

Версии:

<dependency> 
      <groupId>org.mongodb</groupId> 
      <artifactId>mongo-java-driver</artifactId> 
      <version>2.12.4</version> 
     </dependency> 

     <dependency> 
      <groupId>org.mongodb.morphia</groupId> 
      <artifactId>morphia</artifactId> 
      <version>0.108</version> 
     </dependency> 

ответ

3

Пустые поля означают нуль. Эти поля имеют значения «» и поэтому сохраняются. Если вы не хотите, чтобы они сохранялись, они должны были быть нулевыми.

+0

спасибо. Я использую JSF2 и решить с <контекстно-PARAM> javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL правда

Смежные вопросы