有没有办法在 Redis 和关系数据库中使用带有 @RedisHash 的实体?

Luc*_*lva 6 java redis spring-data-redis spring-boot

我正在使用Spring引导。为了将我的实体保存在关系数据库上,我配置了一个数据源和我的域类,例如:

@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;
Run Code Online (Sandbox Code Playgroud)

使用本教程: 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;
}
Run Code Online (Sandbox Code Playgroud)

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

我想在关系数据库中使用这个域类,而不复制要保存的文件,有时在 Redis 上,有时在关系数据库中。我搜索过,但没有找到任何东西。

有人可以帮忙吗?

小智 1

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

Redis 的域类将带有@RedisHash注释