为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: v8
【操作系统】:centos
【CPU】:
【问题描述】*:
使用hibernate jpa测试报错,报错信息如下:
jar包版本:
damengVersion = '8.1.2.141'
hibernateVersion = '5.3.15.Final'
dmDialectHibernateVersion = '8.1.2.141'
libs_damengConnector = [group: 'com.dameng', name: 'DmJdbcDriver18', version: damengVersion]
libs_hibernateCore = [group: 'org.hibernate', name: 'hibernate-core', version: hibernateVersion]
libs_dmDialectHibernate = [group: 'com.dameng', name: 'DmDialect-for-hibernate5.3', version: dmDialectHibernateVersion]
persistence.xml配置如下:
<persistence-unit name="emf" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.DmDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="javax.persistence.jdbc.driver" value="dm.jdbc.driver.DmDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:dm://ip:5236"/>
<property name="javax.persistence.jdbc.user" value="xxx"/>
<property name="javax.persistence.jdbc.password" value="xxxxxxxxxxxxx"/>
</properties>
</persistence-unit>
</persistence>
测试代码:
public class DmHibernateJPADemo {
public static void main(String[] args) {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("emf");
EntityManager entityManager = factory.createEntityManager();
RtiDBConfig config = new RtiDBConfig();
config.setId(1);
config.setPartitions(8);
config.setReplications(3);
config.setTtlDays(7);
EntityTransaction transaction = entityManager.getTransaction();
try {
transaction.begin();
entityManager.persist(config);
transaction.commit();
} catch (Exception e) {
e.printStackTrace();
transaction.rollback();
}
RtiDBConfig result = entityManager.find(RtiDBConfig.class, 1);
System.out.println(result);
entityManager.close();
factory.close();
}
}
@Entity
@Table(name = "rtidb_config")
public class RtiDBConfig {
@Id @GeneratedValue private long id;
private int replications;
private int ttlDays;
private int partitions;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getReplications() {
return replications;
}
public void setReplications(int replications) {
this.replications = replications;
}
public int getTtlDays() {
return ttlDays;
}
public void setTtlDays(int ttlDays) {
this.ttlDays = ttlDays;
}
public int getPartitions() {
return partitions;
}
public void setPartitions(int partitions) {
this.partitions = partitions;
}
@Override
public String toString() {
return "RtiDBConfig{"
+ "id="
+ id
+ ", replications="
+ replications
+ ", ttlDays="
+ ttlDays
+ ", partitions="
+ partitions
+ '}';
}
}
项目结构:
老师,有加载达梦的驱动吗?安装数据库自带的 dmdbms/driver/jdbc
报错信息看,还没到数据库层应该是实体类与hibernate的整合问题。
可以看下这个整合案例https://gitee.com/gy297879328/jpa_dmhibernate_dm