Spring Data JPA 如何使用EclipseLink

不见得hibernate在任何场景都做的那么完美,@ManyToOne(fetch=FetchType.LAZY) 的时候就不是那个样子了。

如何挂入EclipseLink呢,spring data jpa都集成hibernate了,只需要做如下小小调整就OK了。

1.变更pom.xml


org.springframework.boot
spring-boot-starter-data-jpa


org.hibernate
hibernate-entitymanager




org.eclipse.persistence
eclipselink
2.5.2

这样就好了。

2.增加一个配置文件


import java.util.HashMap;
import java.util.Map;


import javax.sql.DataSource;


import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter;
import org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter;
import org.springframework.transaction.jta.JtaTransactionManager;


@Configuration
public class CustomJpaConfiguration extends JpaBaseConfiguration {


protected CustomJpaConfiguration(DataSource dataSource, JpaProperties properties,
ObjectProvider jtaTransactionManagerProvider) {
super(dataSource, properties, jtaTransactionManagerProvider);
}


@Override
protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
return new EclipseLinkJpaVendorAdapter();
}


@Override
protected Map getVendorProperties() {
final Map ret = new HashMap();
ret.put("eclipselink.weaving", "false");
ret.put("eclipselink.ddl-generation", "create-or-extend-tables");
return ret;
}

}


不是太麻烦,还好。注意后边的eclipselink.weaving和ddl-generation,按照实际需求配置。

3.最后调整application.properties

#Spring DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1
#JPA
spring.jpa.show-sql = true

需要增加database其他参数的,另行调整就好。


三步调整到eclipselink上来了。Everything is OK!


你可能感兴趣的:(Spring Data JPA 如何使用EclipseLink)