在我们的数据库表中,我们记录了一个大字符串及其对应的md5值。在mysql5中,我们插入这样一条记录
insert (md5,content) values (md5(content), hex(content));
进入 hibernate 状态,我已经注释了实体
@Column(name = "content", columnDefinition = "MEDIUMTEXT")
@ColumnTransformer(read = "unhex(content)", write="hex(?)")
private String content;
效果很好。但我不知道如何注释 md5 列,以便在插入时自动生成它。特别是,列转换器将不起作用,因为 ?注解中指的是md5字段,而不是content字段。
任何意见或帮助表示赞赏。
最佳答案
您可以使用 hibernate 拦截器并精确地预先保存(在本例中)事件以进行加密。 在这里阅读有关 hibernate 拦截器的信息 Hibernate Interceptors
关于java - 在 hibernate 中注释派生数据库列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45773907/