一系列的注解的解释

时间:2022-03-02 23:30:34

参考文件:http://www.cnblogs.com/zhuawang/p/3970666.html

1、@SuppressWarnings("serial")

public class TestSerial implements java.io.Serializable {

}
当代码写成这样的时候,在eclipse里会给你提示一个黄色的警告,因为你实现了Serializable 接口,但是没有给出
private static final long serialVersionUID = 5952689219411916553L;类似这样的私有字段(这个字段是实现了Serializable接口需要的,但不必须)
只要加上类似这样的一个字段,黄色警告就会消失,但是你如果就是不想加这个字段,同时还不想看到那个黄色的警告,没问题,那就要在类上加一个注解
(@SuppressWarnings("serial"))
2、 Morphia 学习一 注解

@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

  1. @Entity  
  2. public class Hotel {  
  3.   
  4.     @Id  
  5.     private String id;  
  6.   
  7.     private String name;  
  8.     private int stars;  
  9.   
  10.     @Embedded  
  11.     private Address address;  
  12.   
  13.     // ... getters and setters  
  14. }  
  15.   
  16. ...  
  17.   
  18. import com.google.code.morphia.annotations.Embedded;  
  19.   
  20. @Embedded  
  21. public class Address {  
  22.   
  23.     private String street;  
  24.     private String city;  
  25.     private String postCode;  
  26.     private String country;  
  27.   
  28.     // ... getters and setters  


@Reference

     在数据库中引用另外一个文档,可以在多个Entity中引用同一个文档,注意被引用对象在被引用之前必须已经保存到mongoDB中。
      concreteClass: 指定具体的实体类。 
      ignoreMissing:  忽略任何不能解决的参考。 
      lazy:为参考创建一个代理,这个将在第一次调用时加载(类似Hibernate中的lazy属性) 
      value: 指定在Mongo中存储的属性名。默认使用对象的属性名保存到mongo中