微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java SE上的JPA:对象:entity.Customer@5e80188f不是已知的实体类型

我跟着

https://glassfish.java.net/javaee5/persistence/persistence-example.html

在Java SE环境中测试JPA.
在Eclipse中,我:

>创建了一个新的JPA(2.1)项目;
>在options-> JPA->持久类管理中,我选择了“自动发现带注释的类”,而不是“必须在persistence.xml中列出带注释的类”.

我成功导入了zip文件(Client.java Customer.java Order.java)中的树java类,并修改了persistence.xml文件以满足我的需要.但是在尝试执行main时我得到以下错误.

[EL Info]: 2013-10-18 17:37:54.749--ServerSession(263489307)--EclipseLink,version: Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5
[EL Info]: connection: 2013-10-18 17:37:55.34--ServerSession(263489307)--file:/home/caterpillar/workspace/JPA_Java_SE/build/classes/_JPA_Java_SE login successful
[EL Warning]: metamodel: 2013-10-18 17:37:55.359--The collection of metamodel types is empty. Model classes may not have been found during entity search for Java SE and some Java EE container managed persistence units.  Please verify that your entity classes are referenced in persistence.xml using either java.lang.IllegalArgumentException: Object: entity.Customer@5e80188f is not a kNown entity type.
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4228)
    at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
    at client.Client.testInsert(Client.java:82)
    at client.Client.main(Client.java:49)

persistence.xml中

persistence-unit name="JPA_Java_SE">
        MysqL://localhost:3306/test?useUnicode=true&characterEncoding=utf8"/>
            MysqL.jdbc.Driver"/>
        persistence-unit>

项目目录树:

$tree
.
├── build
│   └── classes
│       ├── client
│       │   └── Client.class
│       ├── entity
│       │   ├── Customer.class
│       │   └── Order.class
│       └── meta-inf
│           └── persistence.xml
├── sql
│   ├── tables_derby.sql
│   └── tables_oracle.sql
└── src
    ├── client
    │   └── Client.java
    ├── entity
    │   ├── Customer.java
    │   └── Order.java
    └── meta-inf
        └── persistence.xml

10 directories,10 files

所有clases代码http://glassfish.dev.java.net/javaee5/persistence/JPASE.zip的avaible示例文件相同

最佳答案
persistence.xml中缺少下一行:

此行的位置如下例所示:

persistence-unit name="SamplePU" transaction-type="RESOURCE_LOCAL">
    persistence-unit>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐