【发布时间】:2014-08-31 18:04:40
【问题描述】:
编辑:
@NamedQueries({
@NamedQuery(name="getOLTsByProcessStateAndAssignee",query="select o from Olt o where o.activityProcessId IN(:procId) order by modifiedtime desc"),
@NamedQuery(name="getOLTsByProcessStateAndAssigneeForSearch",query="select o from Olt o where o.activityProcessId IN(:procId) and o.name like :name order by modifiedtime desc"),
@NamedQuery(name="findOltbyname",query="select o from Olt o where o.name=:oltname and o.jioCenter.id=:jioCenterId"),
})
@XmlRootElement(name="Olt") @Audited @Entity
@Table(name="olt")
public class Olt extends BaseEntity implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
/*@GeneratedValue(generator="olt_id_gen")
@GenericGenerator(name = "olt_id_gen",
strategy = "com.inn.fttx.model.IntegerSequenceGenerator",
parameters = {
@Parameter(name="sequence" , value="OLT_ID_SEQ")
})
@Id */
@SequenceGenerator(name = "olt_id_SEQ", sequenceName = "olt_id_SEQ", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="olt_id_SEQ")
这里我得到以下异常 -
嵌套异常是 org.hibernate.exception.SQLGrammarException: ORA-02289: 序列不存在
我见过coderanch和stackoverflow的不同线程,我发现了什么:
- Oracle 数据库正在运行(很可能)
- 您的应用已连接到它(很可能)
- 您已连接到正确的数据库(可能/可能没有)
- 其实有一个序列表叫做“olt_id_SEQ”
我只是在上面粘贴了这几点,所以我可以展示我已经做了什么。
但在我的 Oracle 数据库中,我有这个序列,我可以使用 nextval 对其执行选择。
请告诉我,如果问题出在数据库端或 java 端?任何建议/建议将不胜感激。
【问题讨论】:
-
别管其他帖子的其他问题,你有什么具体问题?我在您的帖子中没有看到任何问题。
-
@JamesB 我已经编辑了我的问题。
-
您确定您的序列存在于您的应用程序使用的数据库架构中吗?
-
@JamesB 是的,它就在那里。我也重新创建了它。但仍然得到同样的例外。我还执行了选择 CUSTOMER_ID_sequence.nextval,这给了我正确的结果。
-
如下所述,如果应用程序使用与序列所有者不同的模式,您可能需要检查此序列的授权。
标签: java oracle hibernate sequence