我将以下 JPA 代码与 MySQL DB 和 OpenJPA 2.2.2 一起使用:
@MappedSuperclass
public abstract class IdentifiableEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
// getters, setters, etc.
}
@Entity
public class User extends IdentifiableEntity {
private String name;
// getters, setters, etc.
}
User user = new User();
在 JSE 环境中执行此操作时收到此消息:
错误 [main] openjpa.Enhance - IdentifiableEntity Embeddable 中定义的身份字段不受支持。
我尝试在 Oracle 1.6 JDK 上运行 OpenJPA 动态加载的类增强器。尽管有消息,但代码似乎正在正确执行。
为什么我会收到此消息?是良性的吗?
以下是 的内容persistence.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" version="2.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="persistenceUnit">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<properties>
<property name="openjpa.ConnectionURL"
value="jdbc:mysql://localhost:3306/playground?useUnicode=true&characterEncoding=UTF-8"/>
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
<property name="openjpa.ConnectionUserName" value="guest"/>
<property name="openjpa.ConnectionPassword" value="guest"/>
<!-- Classes should be enhanced at build-time for production. -->
<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/>
<property name="openjpa.DynamicEnhancementAgent" value="true"/>
<!-- Enable logging -->
<property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE" />
<property name="openjpa.ConnectionFactoryProperties" value="PrintParameters=true" />
</properties>
</persistence-unit>
</persistence>