I've noticed that the entity (in this case Address) has been weaved with DocumentBacked interface and not the @Document bean itself (SpatialInfo), but probably it's correct while document must be accessed by relation with the entity acting as a "parent", It's strange that no weaving has been applied to the bean annotated with @Document ...
By the way, there are the sources of two beans involved.
I hope someone can help me because I'm stuck 
ENTITY BEAN:
Code:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.validator.constraints.Length;
import org.novaworks.data.documents.SpatialInfo;
import org.springframework.data.persistence.document.RelatedDocument;
@Entity
@Table( name = "LOCATIONS" )
@Cache(region="long_lived", usage = CacheConcurrencyStrategy.READ_WRITE)
public class Address extends AbstractPersistentEntity {
private static final long serialVersionUID = -3606726741408514823L;
@Length(max = 150)
@NotNull
private String street;
@Length(max = 50)
@NotNull
private String city;
@Length(max = 50)
@Pattern(regexp = "^\\d*$")
private String code;
@Length(max = 50)
@NotNull
private String country;
private String reference;
private String number;
@Column(name="FLOOR")
private String floor;
private String area;
@Transient
@RelatedDocument
private SpatialInfo spatialInfo;
@ManyToMany( fetch = FetchType.LAZY , mappedBy = "addresses")
private Set<Contact> contacts;
public Address() {}
// ... accessors
}
DOCUMENT BEAN:
Code:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class SpatialInfo {
@Id
private String id;
private double latitude;
private double longitude;
private double altitude;
// ... accessors
}