跳至主要內容
Hibernate中@Formula注解的最佳实践

Hibernate中@Formula注解的最佳实践

1. @Formula注解是什么?

1.1 动态计算字段值

Hibernate中的**@Formula注解允许您在实体中映射计算字段。不同于直接将数据库列映射到Java字段,@Formula**可定义SQL表达式用于字段值的动态计算。该特性特别适用于依赖其他列或表数据的只读字段。

例如,在Employee实体中需要根据first_name和last_name列生成全名,使用**@Formula**即可实现无需数据库存储全名:


程序猿DD原创大约 3 分钟Spring DataSpring DataHibernate
Spring Data JPA自动生成表时列顺序混乱的解决办法(最新版)

Spring Data JPA自动生成表时列顺序混乱的解决办法(最新版)

最近把Spring Boot的版本升级到了3.3.5,突然发现一个问题:当使用Spring Data JPA自动生成表的时候,所产生的列顺序与Entity类中的变量顺序不一致了。比如,有一个下面这样的Entity:

@Data
@Entity(name = "t_config")
@EntityListeners(AuditingEntityListener.class)
public class Config {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(length = 20)
    private String itemKey;
    @Column(length = 200)
    private String itemValue;
    @Column(length = 200)
    private String itemDesc;

    @CreatedDate
    private Date createTime;
    @LastModifiedDate
    private Date modifyTime;

}

程序猿DD原创大约 3 分钟Spring BootSpring BootSpring Data JPAHibernate