在spring中会遇到类似于如下的配置,其中的property 中那么的设置我是明白的是对应类中的setXXX的对应关系,但是当setJpaProperties时,我就不是很明白其中的prop的key值,如下为什么是key="hibernate.dialect"而不是其他的key="dialect"这里的key值的确定格式要根据什么来确定呢?
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">${db.hibernate.dialect}</prop>
<prop key="hibernate.max_fetch_depth">${db.hibernate.max_fetch_depth}</prop>
<prop key="hibernate.jdbc.fetch_size">${db.hibernate.jdbc.fetch_size}</prop>
<prop key="hibernate.jdbc.batch_size">${db.hibernate.jdbc.batch_size}</prop>
<prop key="hibernate.show_sql">${db.hibernate.show_sql}</prop>
<!-- 配置显示sql语句 -->
<prop key="hibernate.show_sql">true</prop>
<!-- 让输出的sql语句格式化 -->
<prop key="format_sql">true</prop>
<!-- <prop key="hibernate.hbm2ddl.auto">update</prop> -->
</props>
</property>
里面的key必须要用hibernate.名字来修饰,这是内定的。
1.、首先要明白配置文件key肯定是为了取value的,一般情况是可以随意定的,先搞明白代码中有没有调用key取value,看看怎么取的,你就明白了。
2、 为代码规范 都是 key和value后半部分一致。
这里补下Spring管理entityManagerFactory的bean
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="persistenceUnitName" value="default"></property>
<property name="packagesToScan" value="com.qdm"></property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">${db.hibernate.dialect}</prop>
<prop key="hibernate.max_fetch_depth">${db.hibernate.max_fetch_depth}</prop>
<prop key="hibernate.jdbc.fetch_size">${db.hibernate.jdbc.fetch_size}</prop>
<prop key="hibernate.jdbc.batch_size">${db.hibernate.jdbc.batch_size}</prop>
<prop key="hibernate.show_sql">${db.hibernate.show_sql}</prop>
<!-- 配置显示sql语句 -->
<prop key="hibernate.show_sql">true</prop>
<!-- 让输出的sql语句格式化 -->
<prop key="format_sql">true</prop>
<!-- <prop key="hibernate.hbm2ddl.auto">update</prop> -->
</props>
</property>
</bean>
package org.hibernate.cfg;
/**
@author Steve Ebersole
/
public interface AvailableSettings {
/*
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
这是spring为hibernate的一个规范,而hibernate.dialect中的hibernate是一个标识。
使用crtl+h 在*.jar中查找对应的key,应该能找到哪里调用了。