1
工作,我在我的帳戶實體FetchType =懶惰和可選=假不JPA
@ManyToOne(fetch = FetchType.LAZY,optional = false)
@JoinColumn(name = "CONTACT_ID", referencedColumnName = "CONTACT_ID", nullable = false)
private Contact Contact;
使用多對一映射在我的DAO我retreving數據
entitymanager.createQuery("SELECT v FROM Account v").getResultList();
雖然我是使用optional = fasle and fetchType = Lazy
。我看到它正在運行所有查詢並檢索引用的表數據。
我使用的春天boot.Below是我的EntityManager配置
@Configuration
@EnableTransactionManagement
public class DatabaseConfig {
@Autowired
private Environment env;
@Autowired
private DataSource dataSource;
@Autowired
private LocalContainerEntityManagerFactoryBean entityManagerFactory;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
/*dataSource.setDriverClassName(env.getProperty("db.driver"));*/
dataSource.setUrl(env.getProperty("db.url"));
dataSource.setUsername(env.getProperty("db.username"));
dataSource.setPassword(env.getProperty("db.password"));
return dataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactory =
new LocalContainerEntityManagerFactoryBean();
entityManagerFactory.setDataSource(dataSource);
entityManagerFactory.setPackagesToScan(env.getProperty("entitymanager.packagesToScan"));
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
entityManagerFactory.setJpaVendorAdapter(vendorAdapter);
Properties additionalProperties = new Properties();
// additionalProperties.put("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
additionalProperties.put("hibernate.dialect", env.getProperty("hibernate.dialect"));
// additionalProperties.put("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
additionalProperties.put("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
entityManagerFactory.setJpaProperties(additionalProperties);
return entityManagerFactory;
}
@Bean
public JpaTransactionManager transactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory.getObject());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
在application.properties
hibernate.hbm2ddl.auto: update
hibernate.dialect: org.hibernate.dialect.Oracle12cDialect
hibernate.show_sql: true
你如何配置你的persistence.xml? – sirandy
我使用的是spring配置,因此在java配置類中進行了配置。我已經更新了我的問題的詳細信息 – Developer