봄 최대 절전 모드의 SessionFactory
이 생성 된 후에 데이터베이스의 테이블에 일부 데이터를 삽입하려고합니다.봄 최대 절전 모드 세션 팩터 리가 생성 된 후 데이터베이스에 삽입
나는 CUSTOMER
테이블을 가지고 있으며, Customer
이없는 경우이 테이블에 특정 Customer
을 삽입하고 싶습니다.
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="packagesToScan" value="com.edfx.adb.persist.entity" />
<property name="entityInterceptor" ref="entityInterceptor" />
</bean>
나는 우리가 SQL 파일을 말할 수 있고, 쿼리가 SessionFactory
초기화시에 실행됩니다있는 옵션 hibernate.hbm2ddl.import_files
있다는 것을 알고
이
는SessionFactory
의 구성입니다. 그러나 나는이 방법을 따르고 싶지 않다.
또한 우리는 ServletContextListener
을 이런 목적으로 사용할 수 있다는 것을 알았지 만, 이것이 내가 원하는 것을 성취 할 수있는 좋은 방법이라고 확신하지 못합니다. 내가 이해하는 바는 리스너가 war 파일을 배포 한 후 처음 사용자가 응용 프로그램을 쳤을 때 초기화된다는 것입니다. 따라서 만약 내가 Customer
을 운영하는 Scheduler를 가지고 있고 어떤 사용자가 응용 프로그램을 치기 전에 Scheduler가 실행되면 Scheduler는 그 need-to-be-insert 데이터를 찾지 못할 것입니다.
모든 포인터가 도움이 될 것입니다.
다른 메소드를 만들고 세션 객체를 삽입하여 saveOrUpdate를 호출하거나 save (고유 기본 키를 반환)하고 업데이트가 성공하면 세션을 sessionFactory 레벨 캐시 (레벨 2) 캐시에 추가하십시오. 또한 새로 고침 당신의 세션 팩토리 .. 당신은 잘되어야합니다 ... – KDjava
@KDjava 나는 당신의 제안을 분명히 이해하지 못합니다. 방법을 만들어서 무슨 뜻이야? 방법을 어디에서 만들 수 있습니까? bean을 만들고 그 bean에서 메소드를 정의하고 메소드를 호출하도록 제안 하시겠습니까? 또한 나머지 부분은 매우 명확하지 않으므로 세션을 추가하고 sessionFactory를 새로 고칩니다. 왜 내가 이것을 필요로합니까? –