Как создать таблицу с использованием OpenJPA для Apache ODE?
Я хочу создать новую таблицу с использованием OpenJPA в исходном коде Apache ODE. Я создал интерфейс и предоставил реализацию. Я скомпилировал процесс с помощью Maven и развернул его на Apache Tomcat. Однако, когда я запускаю процесс BPEL на движке Apache ODE, я получаю сообщение об ошибке:
org.apache.openjpa.persistence.PersistenceException: таблица / представление 'ODE_POLICY_ATTACHMENT' не существует.
Я добавил свой класс PolicyAttachmentDAOImpl в ApacheODE\dao-jpa\src\main\resources\META-INF\persistence.xml
persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1.0">
<persistence-unit name="ode-dao">
<!--
This properties file is used specifically by the
OpenJPA Enhancer.
-->
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>org.apache.ode.dao.jpa.ProcessDAOImpl</class>
<class>org.apache.ode.dao.jpa.PolicyAttachmentDAOImpl</class>
.............................................................
</persistence-unit>
Мой интерфейс DAO(Data Access Object):
public interface PolicyAttachmentDAO {
/**
* Get the process.
*
* @return process reference.
*/
ProcessDAO getProcess();
...............
}
Затем я реализовал это в классе, как это:
@Entity
@Table(name = "ODE_POLICY_ATTACHMENT")
/**
*
* OpenJPA implementation of the {@link PolicyAttachmentDAO} interface.
*
*/
public class PolicyAttachmentDAOImpl extends OpenJPADAO implements PolicyAttachmentDAO{
@Id
@Column(name = "POLICYATTACHMENT_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long _attachmentId;
@ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST })
@Column(name = "PROCESS_ID")
private ProcessDAOImpl _process;
@Basic
@Column(name = "POLICYATTACHMENT_NAME")
private String _attachmentName;
@Basic
@Column(name = "POLICYATTACHMENT_FILE_DATE")
private Date _attachmentFileDate;
public PolicyAttachmentDAOImpl(ProcessDAOImpl process, String policyAttachmentName, Date attachmentFileDate) {
_process = process;
_attachmentName = policyAttachmentName;
_attachmentFileDate = attachmentFileDate;
}
public ProcessDAO getProcess() {
return _process;
}
.....................
}
Кто-нибудь может подсказать мне, как создать таблицу?
Спасибо! Питер
1 ответ
Мне удалось создать свою таблицу. В исходном коде Apache ODE есть больше файлов persistence.xml, и я не редактировал нужный. После добавления моего класса PolicyAttachmentDAOImpl в ApacheODE\dao-jpa-ojpa-derby\src\test\resources\META-INF\persistence.xml таблица была создана.