Java JPA调用Oracle存储过程
我在网上找到了注释Java JPA调用Oracle存储过程,java,oracle,jpa,Java,Oracle,Jpa,我在网上找到了注释@namedStoredProcedureRequesty 所以在我的实体中,我定义了 @Entity @Table(name = "Ticket_TM") @NamedStoredProcedureQueries( @NamedStoredProcedureQuery( name = "getEmp", procedureName = "GET_EMP", retu
@namedStoredProcedureRequesty
所以在我的实体中,我定义了
@Entity
@Table(name = "Ticket_TM")
@NamedStoredProcedureQueries(
@NamedStoredProcedureQuery(
name = "getEmp",
procedureName = "GET_EMP",
returnsResultSet = false
)
)
public class MyClass implements Serializable {...}
@Service
public class MyService implements IMyService
{
@PersistenceContext EntityManager entityManager;
@Override
@Transactional
public void callProcedure()
{
StoredProcedureQuery query = entityManager.createNamedStoredProcedureQuery("getEmp");
query.execute();
log.info("Procedure executed");
}
}
在我的服务中,我定义了
@Entity
@Table(name = "Ticket_TM")
@NamedStoredProcedureQueries(
@NamedStoredProcedureQuery(
name = "getEmp",
procedureName = "GET_EMP",
returnsResultSet = false
)
)
public class MyClass implements Serializable {...}
@Service
public class MyService implements IMyService
{
@PersistenceContext EntityManager entityManager;
@Override
@Transactional
public void callProcedure()
{
StoredProcedureQuery query = entityManager.createNamedStoredProcedureQuery("getEmp");
query.execute();
log.info("Procedure executed");
}
}
但是我得到了错误
No @NamedStoredProcedureQuery was found with that name : getEmp
@namedStoredProcedureRequesty
不是JPA特定的注释。它可以在EclipseLink/TopLink特定的JPA实现中找到。。很抱歉因此,调用pl/sql函数/过程的唯一方法是使用createNativeQuery?@NamedStoredProcedureQuery,实际上它包含在JPA2.1中。注释包含javax.persistence包。请定义您是否正在使用此注释以及使用哪个JPA实现我正在使用javax.persistence版本2.1.0。你能帮我纠正我犯的错误吗?我写错了什么?我正在使用Oracle和org.hibernate.dialent.oracle10g。您的hibernate版本是否支持JPA2.1?我可以在我使用的实现(DataNucleus v4)中使用它们,因为persistence.xml中“classes”下列出的实体是什么?