我在用EJB向Oracle数据库中插入值的时候(PM规定不能在建表的时候写序列和触发器),规定了表中id必须自增长,还要在程序中实现,因此想到了在Entity类中加入:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="EMP_ID")
private String empId;但是在测试的时候就报出了异常,如下:
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-00942: 表或视图不存在
{prepstmnt 1271286726 SELECT SEQUENCE_VALUE FROM OPENJPA_SEQUENCE_TABLE WHERE ID = ? FOR UPDATE [params=?]} [code=942, state=42000]
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:215)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:203)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:895)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:252)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.executeQuery(TableJDBCSeq.java:774)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.getSequence(TableJDBCSeq.java:514)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.setSequence(TableJDBCSeq.java:554)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq$AllocateSequenceRunnable.run(TableJDBCSeq.java:824)
at org.apache.openjpa.ee.WASRegistryManagedRuntime$DelegatingUOWAction.run(WASRegistryManagedRuntime.java:71)
at com.ibm.ws.uow.UOWManagerImpl.runUnderNewUOW(UOWManagerImpl.java:1067)
at com.ibm.ws.uow.UOWManagerImpl.runUnderUOW(UOWManagerImpl.java:628)
at org.apache.openjpa.ee.WASRegistryManagedRuntime.doNonTransactionalWork(WASRegistryManagedRuntime.java:42)
at org.apache.openjpa.ee.AutomaticManagedRuntime.doNonTransactionalWork(AutomaticManagedRuntime.java:312)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:415)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:290)
at org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60)
... 57 more
本人急需解决这个问题,在线等,恳请高手赐教。
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="EMP_ID")
private String empId;但是在测试的时候就报出了异常,如下:
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-00942: 表或视图不存在
{prepstmnt 1271286726 SELECT SEQUENCE_VALUE FROM OPENJPA_SEQUENCE_TABLE WHERE ID = ? FOR UPDATE [params=?]} [code=942, state=42000]
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:215)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:203)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:895)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:252)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.executeQuery(TableJDBCSeq.java:774)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.getSequence(TableJDBCSeq.java:514)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.setSequence(TableJDBCSeq.java:554)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq$AllocateSequenceRunnable.run(TableJDBCSeq.java:824)
at org.apache.openjpa.ee.WASRegistryManagedRuntime$DelegatingUOWAction.run(WASRegistryManagedRuntime.java:71)
at com.ibm.ws.uow.UOWManagerImpl.runUnderNewUOW(UOWManagerImpl.java:1067)
at com.ibm.ws.uow.UOWManagerImpl.runUnderUOW(UOWManagerImpl.java:628)
at org.apache.openjpa.ee.WASRegistryManagedRuntime.doNonTransactionalWork(WASRegistryManagedRuntime.java:42)
at org.apache.openjpa.ee.AutomaticManagedRuntime.doNonTransactionalWork(AutomaticManagedRuntime.java:312)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:415)
at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:290)
at org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60)
... 57 more
本人急需解决这个问题,在线等,恳请高手赐教。
解决方案 »
- js问题,有大神吗?
- javamail----Transport.send====null
- struts2配置文件 打不开
- svn查看日志提示路径找不到
- java.lang.reflect.InvocationTargetException
- 各位高手请看看我的这个程序(关于写一个国际象棋棋盘的程序)
- jdom和jdom-contrib一起使用来确定xpath的问题
- 我现需要控制pdf的打印.因为我要把打印是否成功传回服务器上,所以不能用pdf 浏览器上的打印按扭.请问我该如何做?望各位高手指点指点
- EJB的疑惑
- 请问如何序列化一个Node??
- Struts2注解中,如何配置Action跳到Action
- 关于购物车的问题,老是报空指针异常~~ 求救~!
你尝试下在oracle直接执行sql语句试试
// name 随便叫,但要保证在工程中是唯一的
// sequenceName 是 Oracle 中 sequence 的名字
@SequenceGenerator(name="T_TEST_ID_GENERATOR", sequenceName="S_TEST", allocationSize = 1, initialValue = 1)
// 主键策略使用 SEQUENCE
// name 与上面的那个 name 一样
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="T_TEST_ID_GENERATOR")
public Integer getId() {
return this.id;
}
在orcale界 id自动增是会被鄙视的