2012-08-13 41 views
1

的_id这是我的目标:蒙戈:吗啡不映射在jongo请求

@XmlRootElement 
@XmlAccessorType(XmlAccessType.NONE) 
public abstract class AdtagEntity extends GenericEntity implements Serializable { 

private static final long serialVersionUID = -6624915864457400750L; 

    @Id 
    @XmlElement 
    protected ObjectId id; 

    @XmlElement 
    protected Date createdDate; 

    @XmlElement 
    @Indexed 
    protected Date modifiedDate; 

    @XmlElement 
    protected boolean deleted; 

    public ObjectId getId() { 
     return id; 
    } 
    .... 
} 

和:

@Entity 
@XmlRootElement(name = "offerAdvantage") 
public class OfferAdvantage extends AdtagEntity implements Serializable { 

    private static final long serialVersionUID = 1L; 

    @XmlElement 
    @NotNull 
    private Date beginDateValidity; 
    ... 
} 

这是集合OfferAdvantage的内容:

myset:PRIMARY> db.OfferAdvantage.findOne() 
{ 
    "_id" : ObjectId("502533ddc131e6beb0b07cae"), 
    "company" : "pio", 
    "version" : 666, 
    "createdDate" : ISODate("2012-08-10T16:16:29.106Z"), 
    "modifiedDate" : ISODate("2012-08-10T16:16:29.106Z"), 
    "deleted" : false, 
    "beginDateValidity" : ISODate("2012-08-03T13:20:00Z"), 
    "endDateValidity" : ISODate("2015-10-04T23:06:40Z"), 
    "name" : "deuxieme demarque", 
    "description" : "", 
    "pois" : [ 
     ObjectId("4fe1ebb9e4b0ef9431abd904") 
    ] 
} 

我的pom.xml:

<dependency> 
    <groupId>org.mongodb</groupId> 
    <artifactId>mongo-java-driver</artifactId> 
    <version>2.6.5</version> 
</dependency> 
<dependency> 
    <groupId>org.jongo</groupId> 
    <artifactId>jongo</artifactId> 
    <version>0.2</version> 
</dependency> 

的问题是,当我想用​​一个OfferAdvantage对象的优势ID为空的集合中的每个对象(优势集合jongo API的MongoCollection):

Iterable<OfferAdvantage> iterable = advantageCollection.find().as(OfferAdvantage.class); 
Iterator<OfferAdvantage> iterator = iterable.iterator(); 
ObjectId advantageId = null; 

while(iterator.hasNext()) { 
    OfferAdvantage advantage = iterator.next(); 
} 

在此先感谢寻求帮助。

回答

2

根据Jongo documentation您可以在吗啡注释为Jongo使用的顶部使用注释@JsonProperty("_id")

public abstract class AdtagEntity extends GenericEntity implements Serializable { 

private static final long serialVersionUID = -6624915864457400750L; 

    @Id 
    @JsonProperty("_id") 
    @XmlElement 
    protected ObjectId id; 

知道它是工作,我非常感兴趣。 ;)

+0

是的,它的工作原理,谢谢:) – pauline 2012-08-17 12:09:28

+0

确切,Mophia使用自定义的@Id注释。有了Jongo,你可以给你命名属性'_id'或者用Jackson注解来标注它:@JsonProperty(“_ id”) – 2012-08-29 07:52:30