我正在使用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是一个很长的while,而非关系模型是一个字符串。我不确定重复的“@Id”注解(即使是不同类型的注解)是否会导致问题。
有没有一种方法可以注释这个类,以确保模型与JPA和MongoClient兼容?
或者我需要创建两个不同的类(PersonDocument,PersonEntity)并在两者之间进行转换?
发布于 2018-05-31 00:41:45
事实证明,它可以在单个类中完成。因此,只要关系/非关系注释之间没有冲突。
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;
}
}https://stackoverflow.com/questions/50607138
复制相似问题