java - 通过 Spring 将字段注入(inject) Hibernate 加载的实体中

标签 java hibernate spring dependency-injection

我正在寻找一种通过 Spring 在由 Hibernate 从数据库加载的 bean 中注入(inject)某些属性的方法。

例如

class Student {
   int id; //loaded from DB
   String name; //loaded from DB
   int injectedProperty; //Inject via Spring
}

我可以配置 Spring 以便每当 Hibernate 创建类 Student 的对象时,在某些 applicationContext 文件中定义的一些属性被注入(inject)到对象创建中?

最佳答案

the aspectj way有效,我想说标准的 spring/hibernate 方法是注册一个 LoadEventListener (在 hibernate core referencespring referencethis thread 中了解更多信息)

这里是 spring sessionfactory bean 定义的一个片段

<bean id="mySessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    ...
    <property name="eventListeners">
        <map>
            <entry key="post-load">
                <bean class="com.foo.spring.MyLoadListener"></bean>
            </entry>
        </map>
    </property>
</bean>

这里是 LoadEventListener:

public class MyLoadListener implements LoadEventListener{

    public void setSpringManagedProperty(String springManagedProperty){
        this.springManagedProperty = springManagedProperty;
    }
    private String springManagedProperty;

    @Override
    public void onLoad(LoadEvent event, LoadType loadType) throws HibernateException{
        if(MyEntity.class.getName().equals(event.getEntityClassName())){
            MyEntity entity = (MyEntity) event.getInstanceToLoad();
            entity.setMyCustomProperty(springManagedProperty);
        }

    }

}

看妈妈,不需要任何方面。

关于java - 通过 Spring 将字段注入(inject) Hibernate 加载的实体中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3505421/

相关文章:

JAVA 1.8 和 WebSphere 8..5.5.11 - Spring 和 Apache CXF 兼容版本

java - org.hibernate.exception.GenericJDBCException : could not execute query] with root cause

java - 在一条语句中使用 getGenerateKeys() 从 java 向 Oracle 数据库中插入多行

java - hibernate 错误 - 当前事务被中止,命令被忽略直到事务 block 结束

java - Spring 内置的调度器是持久的吗?

java - 有一个通用的 Spring ApplicationContextProvider 供所有 spring 管理的 bean 和其他 bean 使用

java - urlconnection javax.net.ssl.SSLException : java. lang.IllegalStateException

java - @UniqueConstraint 的 Spring boot/Hibernate 问题

java - 使用Hibernate实体管理器但连接未关闭且内存未释放

java - Spring 5 : Web Reactive 的真实 Controller 示例