我正在使用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是很长一段时间而非关系模型是String。我不确定是否重复' @ Id'注释(即使是不同类型)也会引起问题。
有没有办法可以对类进行注释以确保模型与JPA和MongoClient兼容?
或者我是否需要创建两个不同的类(PersonDocument,PersonEntity)并在两者之间进行转换?
答案 0 :(得分:0)
原来它可以在一个类中完成。所以只要关系/非关系注释之间没有冲突。
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;
}
}