JPA配置文件:
XML code
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="JPATestPU" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<properties>
<property name = "openjpa.ConnectionDriverName" value = "com.mysql.jdbc.Driver"/>
<property name = "openjpa.ConnectionURL" value = "jdbc:mysql://localhost:3306/test"/>
<property name = "openjpa.ConnectionUserName" value = "root"/>
<property name = "openjpa.ConnectionPassword" value = "root"/>
</properties>
</persistence-unit>
</persistence>
Java Main 方法:
Java code
package dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import entity.News;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
EntityManagerFactory emf=Persistence.createEntityManagerFactory("JPATestPU");
EntityManager em= emf.createEntityManager();
News news=new News();
news.setId(1);
news.setUsername("aaaaaaaa");
news.setContent("bbbbbbb");
news.setIp("127.0.0.1");
news.setType(1);
news.setUsername("aaaaaaaaaaa");
news.setXianshi(1);
em.persist(news);
System.out.println("success");
}
}
异常信息:
HTML code
282 JPATestPU INFO [main] openjpa.Runtime - Starting OpenJPA 1.2.0
563 JPATestPU INFO [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.MySQLDictionary".
Exception in thread "main" <openjpa-1.2.0-r422266:683325 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance "entity.News@15dd910" to PersistenceCapable failed. Ensure that it has been enhanced.
FailedObject: entity.News@15dd910
at org.apache.openjpa.kernel.BrokerImpl.assertPersistenceCapable(BrokerImpl.java:4353)
at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2419)
at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2280)
at org.apache.openjpa.kernel.DelegatingBroker.persist(DelegatingBroker.java:1021)
at org.apache.openjpa.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:645)
at dao.Test.main(Test.java:30)
请问这是那里出了问题。
我已经将openjpa包加入到项目里面。
问题补充:xiaolongfeixiang 写道
persistence.xml中配置News这个实体类的信息。
这个好像没配!
请问要怎么配
问题补充:mginobili 写道
lz有没有配置News对应的信息呢?
package entity;
// default package
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* News entity. @author MyEclipse Persistence Tools
*/
@Entity
@Table(name = "news", catalog = "test")
public class News implements java.io.Serializable {
// Fields
private Integer id;
private Integer type;
private String username;
private String content;
private Timestamp time;
private String ip;
private Integer xianshi;
// Constructors
/** default constructor */
public News() {
}
/** full constructor */
public News(Integer type, String username, String content, Timestamp time,
String ip, Integer xianshi) {
this.type = type;
this.username = username;
this.content = content;
this.time = time;
this.ip = ip;
this.xianshi = xianshi;
}
// Property accessors
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "type")
public Integer getType() {
return this.type;
}
public void setType(Integer type) {
this.type = type;
}
@Column(name = "username", length = 100)
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
@Column(name = "content", length = 65535)
public String getContent() {
return this.content;
}
public void setContent(String content) {
this.content = content;
}
@Column(name = "time", length = 19)
public Timestamp getTime() {
return this.time;
}
public void setTime(Timestamp time) {
this.time = time;
}
@Column(name = "ip", length = 20)
public String getIp() {
return this.ip;
}
public void setIp(String ip) {
this.ip = ip;
}
@Column(name = "xianshi")
public Integer getXianshi() {
return this.xianshi;
}
public void setXianshi(Integer xianshi) {
this.xianshi = xianshi;
}
}
问题补充:xiaolongfeixiang 写道
<class>Entity.News</class>
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="JPATestPU" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>entity.News</class>
<properties>
<property name = "openjpa.ConnectionDriverName" value = "com.mysql.jdbc.Driver"/>
<property name = "openjpa.ConnectionURL" value = "jdbc:mysql://localhost:3306/test"/>
<property name = "openjpa.ConnectionUserName" value = "root"/>
<property name = "openjpa.ConnectionPassword" value = "root"/>
</properties>
</persistence-unit>
</persistence>
还是不行:
250 JPATestPU INFO [main] openjpa.Runtime - Starting OpenJPA 1.2.0
750 JPATestPU INFO [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.MySQLDictionary".
Exception in thread "main" <openjpa-1.2.0-r422266:683325 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance "entity.News@1d8c528" to PersistenceCapable failed. Ensure that it has been enhanced.
FailedObject: entity.News@1d8c528
at org.apache.openjpa.kernel.BrokerImpl.assertPersistenceCapable(BrokerImpl.java:4353)
at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2419)
at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2280)
at org.apache.openjpa.kernel.DelegatingBroker.persist(DelegatingBroker.java:1021)
at org.apache.openjpa.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:645)
at dao.Test.main(Test.java:28)
问题补充:xiaolongfeixiang 写道
在程序运行之前,对应的数据库、表,是否已经存在?
已经存在了!
问题补充:xiaolongfeixiang 写道
检查下,是否是数据库表结构 与 实体映射的设置 是否一致
实体是用myeclipse 生成的。
这个应该不会有问题吧?
相关推荐
<provider>org.apache.openjpa.persistence.OpenJPAProvider <class>com.example.MyEntity</class> <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/mydb"/> <property name="...
基于SpringBoot+Thymeleaf+JPA的博客系统.zip基于SpringBoot+Thymeleaf+JPA的博客系统.zip基于SpringBoot+Thymeleaf+JPA的博客系统.zip基于SpringBoot+Thymeleaf+JPA的博客系统.zip基于SpringBoot+Thymeleaf+JPA的...
11. **案例研究**:可能包含实际项目中的示例,演示如何在实际开发中应用JPA,解决常见问题。 通过阅读《Apress.Pro.JPA.2.2nd.Edition.Oct.2013》这本书,开发者可以全面了解JPA 2.2的功能,并掌握在实际项目中...
Spring Data JPA 连接 MySQL 8.x 遇到的问题总结 Spring Data JPA 是一个基于 Java 的持久层框架,它提供了简洁的数据访问方式,支持多种数据库,包括 MySQL。然而,在使用 Spring Data JPA 连接 MySQL 8.x 时,...
apache的jpa,版本是1.1.0的,apache主页上能找的到
中间匹配 是指开发者负责创建数据库表、符合 JPA 标准的实体和相应的对象 / 关系映射注释内容,使用 OpenJPA 框架中提供的 org.apache.openjpa.jdbc.meta.MappingTool 工具校验二者的一致性。 使用缓存提升效率 ...
<provider>org.apache.openjpa.persistence.OpenJPAPersistenceProvider <class>com.example.Employee</class> <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/EmployeeDB"/> ...
<property name="databasePlatform" value="org.apache.openjpa.jdbc.sql.MySQLDictionary"/> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> ``` 3. *...
OpenJPA聚合罐 org.apache.openjpa/openjpa/2.4.2/openjpa-2.4.2.jar
jpa--7.api(EntityManager其他方法)jpa--7.api(EntityManager其他方法)jpa--7.api(EntityManager其他方法)jpa--7.api(EntityManager其他方法)
OpenJPA,全称Open Java Persistence API,是Java平台上的一个开源对象关系映射(ORM)框架,它实现了Java Persistence API(JPA),用于管理Java应用程序中的持久化数据。在这个"openjpademo"示例中,我们将会探讨...
Apache OpenJPA是Apache软件基金会开发的一个开源Java持久化项目,它实现了Java Persistence API (JPA),这是一个用于管理和持久化Java对象到关系数据库的标准API。OpenJPA 2.2.0是该项目的一个版本,提供了对Java ...
jpa--6.api(EntityManager实体的状态)jpa--6.api(EntityManager实体的状态)jpa--6.api(EntityManager实体的状态)jpa--6.api(EntityManager实体的状态)
jar包,官方版本,自测可用
jar包,官方版本,自测可用
JPA规范要求对实体对象...OpenJPA支持两种增强 方法,但强烈建议使用字节码编织增强。以下“ 实体增强” 页面包括有关两种增强类型的更多详细信息,以及有关如何在ANT,Maven和Eclipse环境中设置构建时间增强的示例。
【标题】"仓库管理系统,SpringBoot+Spring Data JPA+......zip" 提示我们这是一个基于Java技术栈,特别是SpringBoot和Spring Data JPA框架开发的仓库管理系统的毕业设计项目。这个系统很可能旨在实现仓库的自动化...
OpenJPA聚合罐 org.apache.openjpa/openjpa/2.3.0/openjpa-2.3.0.jar
openjpa-persistence-2.1.0.jar