Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
14 / 14 / 2
Регистрация: 03.02.2010
Сообщений: 142

Hibernate ORA-02289: последовательность не существует. Ошибка при добавлении записи в таблицу

06.09.2012, 22:19. Показов 5560. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть заполненная вручную таблица employee_history, редактирование и удаление записей таблицы проходит нормально. Но при добавлении новой записи возникает ошибка:
java.sql.SQLSyntaxErrorException: ORA-02289: последовательность не существует

Сама таблица определяется следующим классом:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package com.summwork.domain;
 
import java.util.Date;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
 
import com.google.gwt.user.client.rpc.IsSerializable;
import com.summwork.client.dto.EmployeeHistoryDTO;
 
/**
 *персистентный класс для таблицы, 
 *хранящей истории о сотрудниках
 */
@Entity
@Table(name="employee_history")
public class EmployeeHistory implements IsSerializable{
    
    public EmployeeHistory(){}
    
    public EmployeeHistory(EmployeeHistoryDTO dto)
    {
        this.id = dto.getId();
        this.post=new Post(dto.getPost());
        this.person=new Person(dto.getPerson());
        this.division=new Division(dto.getDivision());
        this.startDate=dto.getStartDate();
        this.endDate=dto.getEndDate();
    }
    
    @Id
    @GeneratedValue//(strategy=GenerationType.SEQUENCE)
    @Column(name="emp_history_id")
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    
    
    @ManyToOne
    @JoinColumn(name="person_id")
    public Person getPerson() {
        return person;
    }
    
    public void setPerson(Person person) {
        this.person = person;
    }
    
    @Column(name="start_date")
    @Temporal(value=TemporalType.DATE)
    public Date getStartDate() {
        return startDate;
    }
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }
    
    @Column(name="end_date")
    @Temporal(value=TemporalType.DATE)
    public Date getEndDate() {
        return endDate;
    }
    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }
    
    @ManyToOne
    @JoinColumn(name="post_id")
    public Post getPost() {
        return post;
    }
    public void setPost(Post post) {
        this.post = post;
    }
    
    @ManyToOne
    @JoinColumn(name="div_id")
    public Division getDivision() {
        return division;
    }
    public void setDivision(Division division) {
        this.division = division;
    }
    
    @SuppressWarnings("deprecation")
    public String printStartDate()
    {
        return (this.getStartDate()==null)?"null":
            this.getStartDate().getDay()+"/"+this.getStartDate().getMonth()+"/"+this.getStartDate().getYear();
    }
    
    @SuppressWarnings("deprecation")
    public String printEndDate()
    {
        return (this.getEndDate()==null)?"null":
            this.getEndDate().getDay()+"/"+this.getEndDate().getMonth()+"/"+this.getEndDate().getYear();
    }
    
    @Override
    public String toString() {
        return "EmpHisory(hist_id="+this.getId()+";"+this.getPerson()+
        ";"+this.getPost()+";"+this.getDivision()+
        ";start_date="+this.printStartDate()+";end_date="+this.printEndDate()+")";
    }
    
    
    private int id;//идентификатор истории
    
    private Person person;//сотрудник
    private Post post;//должность
    private Division division;//подразделение
    
    Date startDate,//начало истории
             endDate;//конец истории
}
Ошибка возникает в следующем методе:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Override
public void addEmpHist(EmployeeHistoryDTO dto)
{
     Session session = HibernateUtil.getSessionFactory().getCurrentSession();
     session.beginTransaction();
     
     EmployeeHistory eh=new EmployeeHistory();
     eh.setDivision((Division)session.load(Division.class, dto.getDivision().getId()));//createDiv(dhDTO.getDivision()));
     eh.setPost((Post)session.load(Post.class, dto.getPost().getId()));
     eh.setPerson((Person)session.load(Person.class, dto.getPerson().getId()));
     eh.setEndDate(dto.getEndDate());
     eh.setStartDate(dto.getStartDate());
         
     session.save(eh);
     session.getTransaction().commit();
     if(session != null && session.isOpen()) 
     {
                session.close();
             }
}
Данные этой таблицы введены вручную, при попытке ввести программно, этим методом, возникает ошибка.

В чём может быть причина ошибки? Есть ли какой-либо способ избавиться от неё?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.09.2012, 22:19
Ответы с готовыми решениями:

Ошибка при добавлении записи в таблицу Hibernate
package kurs.stu.forum.jpa; import java.io.Serializable; import javax.persistence.*; import java.util.Date; import...

Ошибка ORA-01722 при добавлении записи из Билдера в Оракл
Здравствуйте. Подскажите пожалуйста. Я пишу на билдере следующий код dataModule->tab1->Append(); ...

Ошибка при добавлении записи в таблицу.
Здрасьте! Такое дело. В навикате создал процедуру добавления записей в таблицу. В самом навикате тестил, вто работает отлично, но вот когда...

4
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
06.09.2012, 22:33
в конфиге вы поставили что ID генерится БД, а в там не создан сиквенс
1
14 / 14 / 2
Регистрация: 03.02.2010
Сообщений: 142
06.09.2012, 22:49  [ТС]
Спасибо, сейчас посмотрю.

Добавлено через 12 минут
Конфиг проекта выглядит следующим образом:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<hibernate-configuration>
    <session-factory>
        <!--класс драйвера-->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <!--url соединения-->
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:sw</property>
        <!--логин-->
        <property name="connection.username">user</property>
        <!--пароль-->
        <property name="connection.password">password</property>
        <!--схема по умолчанию-->
        <property name="hibernate.default_schema">staffschedule</property>
        <!--макс. число соединений в пуле-->
        <property name="connection.pool_size">1</property>
        <!--диалект-->
        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        
        <property name="current_session_context_class">thread</property>
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <property name="show_sql">true</property>
    </session-factory>
 
</hibernate-configuration>
Вроде, ничего такого не поставил
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.09.2012, 00:39
я имел в виду первичный ключ
@GeneratedValue//(strategy=GenerationType.SEQUENCE)
поствьте в AUTO
1
Кошковед
 Аватар для co6ak
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
07.09.2012, 15:47
или в базе создать последовательность, которую и будет тягать hibernate
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.09.2012, 15:47
Помогаю со студенческими работами здесь

Ошибка при добавлении записи в таблицу
Ребят ситуация в следующем, необходимо создать клиент к базе. И вот почти сразу я столкнулся с проблемой , казалось бы простой, эта...

Ошибка при добавлении записи в таблицу
Добрый день! При добавлении новой записи в таблицу ругается на выделенный символ: ... Form1.ZQuery1.SQL.Add('INSERT INTO...

Ошибка при добавлении записи в таблицу!!!
Доброго времени суток! Тема моей курсовой разработка приложения для предметной области &quot;Учёт товара в магазине&quot;. ...

Ошибка при добавлении записи в таблицу
Всем доброго времени суток, я ввожу данные в таблицу напрямую и возникает при некотором количестве записей ошибка. Срабатывает не кое...

Почему ошибка при добавлении записи в таблицу?
Запрос: insert into partners set uid=12, partner_code='a2d9230c73', NULL, '1.00', '0' Таблица имеет вид:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru