Java 如何将不相关的Hibernate实体加载到另一个实体中

Java 如何将不相关的Hibernate实体加载到另一个实体中,java,hibernate,Java,Hibernate,我在Hibernate中遇到了一个小问题: 假设我有一个单例实体,我们称之为Settings,它包含用户为所有类型为B的实体提供的值,当加载B时,这些实体必须应用于xyz字段 B类来自旧的AS/400遗留系统,添加任何列都是毫无疑问的。实际上,B在我的应用程序中总是只读的。另外,类B是来自这个遗留系统的相当复杂的对象结构的一部分,我希望避免在加载实体B时手动组装这个特定的位 是否有任何方法可以让设置自动加载到类B中,请记住,B和设置不会共享任何公共值,以便将它们关联到一起 @Entity cla

我在Hibernate中遇到了一个小问题:

假设我有一个单例实体,我们称之为Settings,它包含用户为所有类型为B的实体提供的值,当加载B时,这些实体必须应用于xyz字段

B类来自旧的AS/400遗留系统,添加任何列都是毫无疑问的。实际上,B在我的应用程序中总是只读的。另外,类B是来自这个遗留系统的相当复杂的对象结构的一部分,我希望避免在加载实体B时手动组装这个特定的位

是否有任何方法可以让设置自动加载到类B中,请记住,B和设置不会共享任何公共值,以便将它们关联到一起

@Entity
class Settings {

    @Column 
    int some_value_to_add_to_field_xyz_in_entity_B_all_the_time;
}

@Entity
class B {

    @ManyToOne
    Settings settings;//I want this to be loaded automatically

    @Column int xyz;

}

谢谢

您研究过@postconstruct吗?@从我的理解和我尝试过的不起作用的内容来看(可能是我这边的错误),postconstruct只适用于容器管理的bean,而Hibernate实体则不起作用。我通过实现Hibernate拦截器的onLoad来实现这一点,该拦截器在加载类型B的实体时加载设置实体。我不确定这是否是最有效的方法,但它确实有效。这是我的怀疑,但尝试简单的方法从来不会花费太多时间。我打算建议使用实体b的消费者的PostsConstruct来设置值(在实体被注入的情况下),但您的方法似乎更符合目标