gpt4 book ai didi

java - 自动填充实体属性

转载 作者:行者123 更新时间:2023-11-30 01:38:57 31 4
gpt4 key购买 nike

我有一些建筑师(?)问题

我开发一个应用程序,基于Spring和Hibernate(带注释的配置)对于数据库中的每个表,我添加了 4 个字段:createdBy 和modifiedBy(String)、created 和modified (Datetime)。每个实体类也分别有 this 字段和 getter/setter 对。因此,我想找到填充此字段的最佳实践解决方案,而不是为每个 DAO 添加额外代码。可能吗?

我很高兴接受任何建议

最佳答案

当然。只需将此代码添加到所有持久实例的基类中并启用注释处理即可:

@PrePersist
public void prePersist()
{
if (created == null)
{
created = updated = createCurrentTimestamp();
createdBy = updatedBy = CurrentUser.get();
}
}

@PreUpdate
public void preUpdate()
{
updated = createCurrentTimestamp();
updatedBy = CurrentUser.get();
}

public static java.sql.Timestamp createCurrentTimestamp ()
{
final long now = System.currentTimeMillis();
final java.sql.Timestamp ts = new java.sql.Timestamp (now);
ts.setNanos(((int)(now % 1000)) * 1000000);
return ts;
}

CurrentUserThreadLocal<String>这允许我在操作开始时指定哪个用户启动了它。这样,任何被触摸的对象都将包含正确的信息。

不进行注释处理,激活 HBM 文件中的相应选项。

关于java - 自动填充实体属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1722607/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com