参考文件:http://www.cnblogs.com/zhuawang/p/3970666.html
1、@SuppressWarnings("serial")
public class TestSerial implements java.io.Serializable {2、 Morphia 学习一 注解
}
当代码写成这样的时候,在eclipse里会给你提示一个黄色的警告,因为你实现了Serializable 接口,但是没有给出private static final long serialVersionUID = 5952689219411916553L;类似这样的私有字段(这个字段是实现了Serializable接口需要的,但不必须)
只要加上类似这样的一个字段,黄色警告就会消失,但是你如果就是不想加这个字段,同时还不想看到那个黄色的警告,没问题,那就要在类上加一个注解
(@SuppressWarnings("serial"))
@Entity
value属性为DBConllection设置名称。必须有一个无参的默认构造方法,可以是public、protected、private等
@Id
@Id将值注解为MongoDB的唯一ID字段,MongoDB必须有一个唯一索引,mongo会自动生成id。如果使用其他类型,需要自己设置。
@Indexed
当datastore.ensureIndexes() 方法调用时,mongoDB将该值生成索引。
value :指定index的方向。默认ASC。 IndexDirection.ASC (ascending), IndexDirection.DESC (descending), IndexDirection.BOTH (both)
name :指定index的名称。默认由mongoDB产生
unique:是否为唯一索引。默认false。如果为true,插入重复值会报错。
dropDups:通知唯一索引删除重复值,只有第一条被保留,默认为false。
@Embedded
创建一个类被嵌套在实体类中的情况下使用,例如,在Hotel类中 可能会有一个Address。Address是Hotel不可分割的一部分,没有ID, 并且不会被存储在分开的collection中。事实上被@Embedded注释的类不允许有@Id
- @Entity
- public class Hotel {
- @Id
- private String id;
- private String name;
- private int stars;
- @Embedded
- private Address address;
- // ... getters and setters
- }
- ...
- import com.google.code.morphia.annotations.Embedded;
- @Embedded
- public class Address {
- private String street;
- private String city;
- private String postCode;
- private String country;
- // ... getters and setters
- }
@Reference
在数据库中引用另外一个文档,可以在多个Entity中引用同一个文档,注意被引用对象在被引用之前必须已经保存到mongoDB中。
concreteClass: 指定具体的实体类。
ignoreMissing: 忽略任何不能解决的参考。
lazy:为参考创建一个代理,这个将在第一次调用时加载(类似Hibernate中的lazy属性)
value: 指定在Mongo中存储的属性名。默认使用对象的属性名保存到mongo中