sessionFactory が EventService クラスに注入されていないのはなぜですか? 私がやろうとしているのは、sessionFactory を EventService クラスに注入することですが、何が起こっているかというと、Services クラス内にのみ注入されているということです
マイ アプリケーション コンテキスト xml
<!-- Inject my business services class to the action -->
<bean id="services" class ="services.Services" scope ="singleton">
<property name = "sessionFactory" ref = "sessionFactory"/>
</bean>
<bean id ="eventservice" class ="services.EventServices" scope ="singleton">
<property name = "sessionFactory" ref = "sessionFactory"/>
</bean>
ここで何が欠けていますか?複数回の注射を申告することはできませんか?
ここに私のEventServicesクラスがあります
package services;
import org.springframework.transaction.annotation.Transactional;
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import data.*;
import java.util.List;
// This class is the business services tier in the application.
// @Transactional is needed so that a Hibernate transaction is set up,
// otherwise updates won't have an affect
@Transactional
public class EventServices {
// So Spring can inject the session factory
SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory value) {
sessionFactory = value;
}
// Shortcut for sessionFactory.getCurrentSession()
public Session sess() {
return sessionFactory.getCurrentSession();
}
@SuppressWarnings("unchecked")
public List<Event> getEvents() {
return sess().createQuery("from Event").list();
}
}
ここに私のサービスクラスがあります
package services;
import org.springframework.transaction.annotation.Transactional;
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import data.*;
import java.util.List;
// This class is the business services tier in the application.
// @Transactional is needed so that a Hibernate transaction is set up,
// otherwise updates won't have an affect
@Transactional
public class Services {
// So Spring can inject the session factory
SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory value) {
sessionFactory = value;
}
// Shortcut for sessionFactory.getCurrentSession()
public Session sess() {
return sessionFactory.getCurrentSession();
}
public void createPerson(String name) {
Person p = new Person();
p.setName(name);
sess().save(p);
}
}
今のところ平凡なコードのように見えますが、EventServices が最終的に機能するようになったらすぐに修正します