use*_*160 30 eclipse jpa java-ee
我创建了一个JPA项目.在那个Eclipse中,在实体类上显示以下错误.
类"model.Address"列在persistence.xml文件中,但未映射
我该如何映射实体类JPA
?
这是persistence.xml
实体:
package model;
import java.io.Serializable;
import javax.persistence.*;
@Entity
public class Address implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
private String city;
private String country;
private String province;
private String postalCode;
private String street;
// Getters/setters omitted for brevity.
}
Run Code Online (Sandbox Code Playgroud)
这是persistance.xml
:
<?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_2_0.xsd"
version="2.0"
>
<provider>org.eclipse.persistance.example.jpa.20.employee.annotations</provider>
<persistence-unit name="employee" transaction-type="RESOURCE_LOCAL">
<class>model.Employee</class>
<class>model.Address</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="javax.persistence.jdbc.user" value="scott" />
<property name="javax.persistence.jdbc.password" value="tiger" />
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 104
这是一个Eclipse的怪癖.我最近在创建一个禁用JPA库配置的新JPA项目时遇到了这个问题,但在我通过Eclipse New JPA Entity向导创建实体之前没有手动配置JPA库.创建实体后,我在项目的构建路径中配置了JPA库(只需在库中添加目标Java EE服务器运行时),但验证错误仍然存在.我可以通过以下至少一种方式解决它:
persistence.xml
文件,JPA工具 - > 同步类列表.这一直是可重复的.我使用的是Eclipse Indigo SR1.在配置JPA库后创建实体时,不会发生此验证错误.
我认为你有错误的JPA提供程序类.它一定要是:
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
Run Code Online (Sandbox Code Playgroud)
(你设置的那个似乎根本不是一个类,更不用说提供者类了)
归档时间: |
|
查看次数: |
52941 次 |
最近记录: |