1

これらは私のオブジェクトです:

@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 が null であることです (利点コレクションは 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();
}

助けてくれてありがとう。

4

1 に答える 1

2

Jongo のドキュメントによると、@JsonProperty("_id")Jongo で使用する Morphia アノテーションの上にアノテーションを使用できます。

public abstract class AdtagEntity extends GenericEntity implements Serializable {

private static final long serialVersionUID = -6624915864457400750L;

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

それが仕事かどうか教えてください、私は非常に興味があります。;)

于 2012-08-13T15:48:27.447 に答える