Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Базы данных (JDBC, JPA, Hibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2012, 23:53   #1
YaMolekula
 
Регистрация: 23.04.2011
Сообщений: 8
По умолчанию Hibernate ORA-02289: последовательность не существует. Ошибка при добавлении записи в таблицу

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

Сама таблица определяется следующим классом:
Код:
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;//конец истории
}
Ошибка возникает в следующем методе:
Код:
@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();
             }
}
Данные этой таблицы введены вручную, при попытке добавить запись программно этим методом к имеющимся записям, возникает ошибка.

В чём может быть причина ошибки?
Есть ли какой-либо способ избавиться от неё?
YaMolekula вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при добавлении записи в таблицу выдает ошибку brutalis БД в Delphi 28 13.05.2012 17:49
ошибка при добавлении записи kuzmich БД в Delphi 3 20.10.2011 03:55
Ошибка при добавлении записи в таблицу dmitruha PHP 2 22.07.2011 15:00
Ошибка при добавлении записи Itachi БД в Delphi 1 10.06.2011 13:30
power builder ошибка при добавление записи в таблицу world12_tk Помощь студентам 0 11.04.2011 21:25