有没有一种方法可以在Redis和关系数据库中通过@RedisHash使用实体?

时间:2018-10-15 12:38:42

标签: java spring-boot redis spring-data-redis

我正在使用Spring Boot。为了将实体保存在关系数据库中,我配置了数据源和域类,例如:

@Entity
@Table(schema = "schema_name", name = "tb_name")
public class table_name extends DomainEntity<Long> {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "ID_TABLE_NAME", nullable = false, updatable = false, precision = 12)
    @SequenceGenerator(name = "sqTableName", sequenceName = "SQ_TABLE_NAME", initialValue = 1, allocationSize = 1)
    @GeneratedValue(generator = "sqTableName", strategy = GenerationType.SEQUENCE)
    private Long id;

    @NotNull  
    @ManyToOne
    @JoinColumn(name   = "ID_OTHER_COLUMN", referencedColumnName = "ID_OTHER_COLUMN", nullable = false)
    private OtherObject obj;

使用本教程:https://www.baeldung.com/spring-data-redis-tutorial,我配置了域类Student:

@RedisHash("Student")
public class Student implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public enum Gender {
        MALE, FEMALE
    }

    private String id;
    private String name;
    private Gender gender;
    private int grade;
}

当一个类用@RedisHash注释时,当我使用.save方法时,它将此实体保存在Redis上。

我想在关系数据库中使用此域类,而不必复制要保存的文件,有时在Redis上,有时在关系数据库中。我搜索了,但是什么也没找到。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以定义没有注释@RedisHash的域类,并为每个数据库创建一个空的域类子类。

redis的域类将带有@RedisHash批注