【问题标题】:Annotating derived database clolumns in hibernate在休眠中注释派生数据库列
【发布时间】:2018-01-28 03:48:54
【问题描述】:

在我们的数据库表中,我们记录了一个大字符串及其对应的 md5 值。在mysql5中,我们用

插入这样一条记录
insert (md5,content) values (md5(content), hex(content));

进入休眠状态,我已经注释了实体

@Column(name = "content", columnDefinition = "MEDIUMTEXT")
@ColumnTransformer(read = "unhex(content)", write="hex(?)")
private String content;

效果很好。但是我看不到如何注释 md5 列,以便它可以在插入时自动生成。特别是,列转换器不起作用,因为?注释中指的是 md5 字段,而不是 content 字段。

任何意见或帮助表示赞赏。

【问题讨论】:

    标签: java hibernate annotations


    【解决方案1】:

    您可以使用休眠拦截器并准确地预先保存(在这种情况下)事件进行加密。 在此处阅读有关休眠拦截器的信息Hibernate Interceptors

    【讨论】:

    • 我很欣赏这个答案。我学到了一些我不知道的东西。但是,我认为这种方法不能解决我的问题。我可以拦截 onSave,并从我的查询中找到状态(值)和属性名,但我不清楚如何设置值。如果我将 md5 字段的值设置为“md5(content)”,则插入该文字字符串,显然,我想计算 md5。
    猜你喜欢
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    相关资源
    最近更新 更多