Mysql вставка значений - PullRequest
       2

Mysql вставка значений

0 голосов
/ 21 апреля 2011

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

MyObject.java объект, который я хочу сохранить в базе данных

@Entity
@Table(name = "my_object")
public class MyObject {
    private String idName;

    @Id
    @Column(name = "id", unique = true, length = 50,nullable=false)
    public String getIdName() {
        return idName;
    }
    public void setIdName(String idName) {
        this.idName = idName;
        this.id = idName.hashCode();
    }

TestToStoreObject.java

    MyObject obj = new MyObject();

                obj.setIdName("id");
//More set ...
                save(obj);

Функция для сохранения объекта в базу данных

protected void save(MyObject obj) throws DataAccessLayerException {
        try{
            getHibernateTemplate().save(obj);
        } catch (HibernateException e) {
            handleException(e);
        }
    }

Это общая функция, которая работает с другими типами данных.Итак, где, я думаю, проблема в конфигурационных файлах.Исключение составляет:

org.springframework.dao.InvalidDataAccessResourceUsageException:
   could not insert: [path.MyObject]; SQL [insert into object (id) values (?)];
nested exception is org.hibernate.exception.SQLGrammarException: 
   could not insert: [path.MyObject]

Вот еще файлы конфигурации:
HibernatePlatform.cfg.xml

 <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
        <session-factory>
            <mapping class="path.User" />
            <mapping class="path.MyObject" />

.........

Может ли кто-нибудь помочь мне в этом ??Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 22 апреля 2011

Проблема заключалась в том, что у меня был другой класс с тем же именем в другом пакете, и это мешало. Совет на будущее: выбери эти мелочи !!

0 голосов
/ 21 апреля 2011

Просто предположение - вы определили класс с именем Object, и есть хороший шанс, что между вашим классом Object и классом java java.lang.Object есть конфликт имен. Возможно, вы пытаетесь случайно сохранить java.lang.Object.

Для быстрого теста: измените класс на MyObject (используя eclipse, netbeans, ...). Если некоторые типы с именем Object не изменились после рефакторинга, то мое предположение может быть правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...