내 프로젝트를 db에 연결하려고합니다. 나는 이미 연결되어 있고이 db에서 작동하는 하나의 프로젝트를 가지고 있습니다. 그리고 jms를 사용하여 둘 사이의 통신과 통신이 필요합니다. 나는 secon을 동일한 db에 연결하도록 구성했으며 작동하지 않습니다. 잘 연결은 괜찮습니다. Entity 클래스를 만들면 db로 새 테이블을 볼 수 있습니다. 그래서 큰. 하지만 엔티티 관리자를 삽입해야하는 제어기를 작성했는데 항상 null입니다. 나는 이유를 모른다. 여기 내 설정입니다. 여기 EntityManager가 null입니다. 삽입 할 수 없습니다
@Configuration
@ComponentScan(basePackages = { "**.*****.**********" })
public class CalculationWorkerRootConfig {
@Bean
public static PropertyPlaceholderConfigurer propertyPlaceholderConfigurer() {
PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
ppc.setLocation(new ClassPathResource("/persistence.properties"));
return ppc;
}
}
는 관리자 구성 장치입니다 :
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories
public class CalculationWorkerPersistenceConfig implements TransactionManagementConfigurer {
@Value("${dataSource.driverClassName}")
private String driver;
@Value("${dataSource.url}")
private String url;
@Value("${dataSource.username}")
private String username;
@Value("${dataSource.password}")
private String password;
@Value("${hibernate.dialect}")
private String dialect;
@Value("${hibernate.hbm2ddl.auto}")
private String hbm2ddlAuto;
@Bean
public DataSource configureDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean configureEntityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setDataSource(configureDataSource());
entityManagerFactoryBean.setPackagesToScan("**.*********.************");
entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
Properties jpaProperties = new Properties();
jpaProperties.put(org.hibernate.cfg.Environment.DIALECT, dialect);
jpaProperties.put(org.hibernate.cfg.Environment.HBM2DDL_AUTO, hbm2ddlAuto);
entityManagerFactoryBean.setJpaProperties(jpaProperties);
return entityManagerFactoryBean;
}
@Bean
public PlatformTransactionManager annotationDrivenTransactionManager() {
return new JpaTransactionManager();
}
}
그리고 여기 저장소입니다 : 당신은 단지 EntityManagerFactory
아닌 EntityManager
를 인스턴스화하는 무엇을보고에서
@Repository
@Transactional(readOnly = true)
public class CalculationWorkerRepository {
@PersistenceContext
EntityManager entityManager;
public Campaign findByID(Long id) {
return entityManager.find(Campaign.class, id);
}
@Transactional
public void setCalculating(Boolean calculating, Long campaignID) {
Campaign campaign = findByID(campaignID);
campaign.setCalculating(calculating);
}
}
컨트롤러를 표시 할 수 있습니까? –