我正在使用Java Spring,并且有一个模型,我目前正在将其映射到关系数据库(MySQL(和NoSQL数据库(MongoDB(。
@Entity
@Document
public class Person {
@Id
@AutoGenerated(...)
private long id;
@Id
private String documentId;
private String firstName;
private String lastName;
...
}
我需要关系模型的 id 很长一段时间,非关系模型是字符串。我不确定重复的"@Id"注释(即使是不同类型的注释(是否会导致问题。
有没有办法对类进行注释以确保模型与JPA和MongoClient兼容?
还是我需要创建两个不同的类(PersonDocument,PersonEntity(并在两者之间进行转换?
事实证明,它可以在单个类中完成。所以只要关系/非关系注释之间没有冲突。
import org.springframework.data.mongodb.core.mapping.Field;
@javax.persistence.Entity
@org.springframework.data.mongodb.core.mapping.Document
public class Person {
@javax.persistence.Id
@javax.persistence.GeneratedValue
@org.springframework.data.annotation.Transient
private long id;
@org.springframework.data.annotation.Id
@javax.persistence.Transient
private String documentId;
@Field
private String firstName;
@Field
private String lastName;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}