Java Spring Relational模型和Document模型作为一个类

时间:2018-05-30 14:23:02

标签: java spring orm models odm

我正在使用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)并在两者之间进行转换?

1 个答案:

答案 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;
    }
}