0 0

OpenJPA问题!请教...5

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 生成的。
这个应该不会有问题吧?
DAO 
2010年1月29日 11:38

6个答案 按时间排序 按投票排序

0 0


检查下,是否是数据库表结构实体映射的设置  是否一致

2010年2月01日 11:33
0 0

在程序运行之前,对应的数据库、表,是否已经存在?

2010年1月29日 16:24
0 0

<?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"> 
        
<class>Entity.News</class>

<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> 

2010年1月29日 12:20
0 0


<class>Entity.News</class>

2010年1月29日 12:18
0 0


persistence.xml中配置News这个实体类的信息。

2010年1月29日 11:59
0 0

lz有没有配置News对应的信息呢?

2010年1月29日 11:46

相关推荐

    Spring和openJPA集成

    &lt;provider&gt;org.apache.openjpa.persistence.OpenJPAProvider &lt;class&gt;com.example.MyEntity&lt;/class&gt; &lt;property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/mydb"/&gt; &lt;property name="...

    基于SpringBoot+Thymeleaf+JPA的博客系统.zip

    基于SpringBoot+Thymeleaf+JPA的博客系统.zip基于SpringBoot+Thymeleaf+JPA的博客系统.zip基于SpringBoot+Thymeleaf+JPA的博客系统.zip基于SpringBoot+Thymeleaf+JPA的博客系统.zip基于SpringBoot+Thymeleaf+JPA的...

    Apress.Pro.JPA.2.2nd.Edition.Oct.2013

    11. **案例研究**:可能包含实际项目中的示例,演示如何在实际开发中应用JPA,解决常见问题。 通过阅读《Apress.Pro.JPA.2.2nd.Edition.Oct.2013》这本书,开发者可以全面了解JPA 2.2的功能,并掌握在实际项目中...

    spring data jpa 连接mysql8.x的一些问题梳理总结.docx

    Spring Data JPA 连接 MySQL 8.x 遇到的问题总结 Spring Data JPA 是一个基于 Java 的持久层框架,它提供了简洁的数据访问方式,支持多种数据库,包括 MySQL。然而,在使用 Spring Data JPA 连接 MySQL 8.x 时,...

    openjpa-1.1.0.jar

    apache的jpa,版本是1.1.0的,apache主页上能找的到

    OpenJPA 2.2.1 API (CHM格式)

    中间匹配 是指开发者负责创建数据库表、符合 JPA 标准的实体和相应的对象 / 关系映射注释内容,使用 OpenJPA 框架中提供的 org.apache.openjpa.jdbc.meta.MappingTool 工具校验二者的一致性。 使用缓存提升效率  ...

    Open JPA2 employee 简单例子

    &lt;provider&gt;org.apache.openjpa.persistence.OpenJPAPersistenceProvider &lt;class&gt;com.example.Employee&lt;/class&gt; &lt;property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/EmployeeDB"/&gt; ...

    Spring中使用OpenJPA

    &lt;property name="databasePlatform" value="org.apache.openjpa.jdbc.sql.MySQLDictionary"/&gt; &lt;bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"&gt; ``` 3. *...

    openjpa-2.4.2.jar

    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其他方法)jpa--7.api(EntityManager其他方法)

    openjpa 写的一个例子

    OpenJPA,全称Open Java Persistence API,是Java平台上的一个开源对象关系映射(ORM)框架,它实现了Java Persistence API(JPA),用于管理Java应用程序中的持久化数据。在这个"openjpademo"示例中,我们将会探讨...

    apache-openjpa-2.2.0-source.zip

    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实体的状态)jpa--6.api(EntityManager实体的状态)

    com.springsource.org.apache.openjpa-1.1.0.jar

    jar包,官方版本,自测可用

    com.springsource.org.apache.openjpa.jdbc-sources-1.0.2.jar

    jar包,官方版本,自测可用

    apache-openjpa-3.1.0-binary.zip

    JPA规范要求对实体对象...OpenJPA支持两种增强 方法,但强烈建议使用字节码编织增强。以下“ 实体增强” 页面包括有关两种增强类型的更多详细信息,以及有关如何在ANT,Maven和Eclipse环境中设置构建时间增强的示例。

    仓库管理系统,SpringBoot+Spring Data JPA+......zip

    【标题】"仓库管理系统,SpringBoot+Spring Data JPA+......zip" 提示我们这是一个基于Java技术栈,特别是SpringBoot和Spring Data JPA框架开发的仓库管理系统的毕业设计项目。这个系统很可能旨在实现仓库的自动化...

    openjpa-2.3.0.jar

    OpenJPA聚合罐 org.apache.openjpa/openjpa/2.3.0/openjpa-2.3.0.jar

    openjpa-persistence-2.1.0.jar

    openjpa-persistence-2.1.0.jar

Global site tag (gtag.js) - Google Analytics