我有一个实体,它有一个我需要为特定配置或会话工厂制作Transient的列。基本上,该列永远不应该在一个特定配置的update或insert语句中发送,并且在检索数据时将由拦截器设置。对于任何其他配置,该列应保留在数据库中。有没有办法在运行时/动态配置列,基于会话工厂或配置?我能够使列瞬态并正确设置,但我需要它保留一些配置。
编辑我最初使用“过滤器”但意味着“拦截器”
答案 0 :(得分:1)
注释是一种语法元数据形式,可以添加到Java源代码中,因此您无法在运行时更改它。
但是,如果必要的话,java注释可以在运行时通过反射api访问程序员。有关如何使用Javassist添加注释的示例是here。
正如Dragan建议的那样,我的建议是你可以在不需要的地方将其设置为null。
答案 1 :(得分:0)
您可以创建两个实体,作为一个表的映射。在第一个中,你的列在另一个列中将是瞬态的。我已经遇到过这样的问题了,我认为打开会话后无法更改映射配置。