扫码一下
查看教程更方便
spring boot 使用 hibernatejpaautoconfiguration
默认配置休眠实现。 为了切换到 eclipselink,我们需要创建一个自定义配置类,它将继承 jpabaseconfiguration
类。 jpabaseconfiguration
是用于为任何 orm 实现扩展和配置 jpa 的基类。 以下是 eclipslinkjpaconfiguration 的代码。
eclipslinkjpaconfiguration.java
package com.spring.springbootorm; import java.util.hashmap; import java.util.map; import javax.sql.datasource; import org.eclipse.persistence.config.persistenceunitproperties; import org.eclipse.persistence.logging.sessionlog; 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.bean; import org.springframework.context.annotation.configuration; import org.springframework.jdbc.datasource.drivermanagerdatasource; import org.springframework.orm.jpa.vendor.abstractjpavendoradapter; import org.springframework.orm.jpa.vendor.eclipselinkjpavendoradapter; import org.springframework.transaction.jta.jtatransactionmanager; @configuration public class eclipslinkjpaconfiguration extends jpabaseconfiguration { protected eclipslinkjpaconfiguration(datasource datasource, jpaproperties properties, objectprovider
jtatransactionmanager) { super(datasource, properties, jtatransactionmanager); } @override protected abstractjpavendoradapter createjpavendoradapter() { return new eclipselinkjpavendoradapter(); } @override protected map getvendorproperties() { map map = new hashmap<>(); map.put(persistenceunitproperties.weaving, "false"); map.put(persistenceunitproperties.logging_level, sessionlog.finer_label); map.put(persistenceunitproperties.ddl_generation, persistenceunitproperties.create_only); map.put(persistenceunitproperties.logging_level, sessionlog.finer_label); return map; } @bean public static datasource datasource() { final drivermanagerdatasource datasource = new drivermanagerdatasource(); datasource.setdriverclassname("com.mysql.cj.jdbc.driver"); datasource.set; datasource.setusername("root"); datasource.setpassword("root@123"); return datasource; } }
我们分别使用 createjpavendoradapter()
、datasource()
和 getvendorproperties()
方法添加了 adapter、datasource 和属性。
也更新实体以使用整数而不是 int。
package com.spring.springbootorm.entity;
import javax.persistence.entity;
import javax.persistence.generatedvalue;
import javax.persistence.generationtype;
import javax.persistence.id;
@entity
public class employee {
@id
@generatedvalue(strategy = generationtype.identity)
private integer id;
private string name;
private integer age;
private string email;
public integer getid() {
return id;
}
public void setid(integer id) {
this.id = id;
}
public string getname() {
return name;
}
public void setname(string name) {
this.name = name;
}
public integer getage() {
return age;
}
public void setage(integer age) {
this.age = age;
}
public string getemail() {
return email;
}
public void setemail(string email) {
this.email = email;
}
}