Spring Data JPA 如何使用EclipseLink

来源:互联网 发布:快速移动文件软件 编辑:程序博客网 时间:2024/05/21 08:00

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

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

1.变更pom.xml

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.2</version>
</dependency>

这样就好了。

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<JtaTransactionManager> jtaTransactionManagerProvider) {
super(dataSource, properties, jtaTransactionManagerProvider);
}


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


@Override
protected Map<String, Object> getVendorProperties() {
final Map<String, Object> ret = new HashMap<String, Object>();
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!


1 0
原创粉丝点击