2011-04-21 8 views
0

나는 데이터베이스에 객체를 저장하고 있는데, 내가 보지 못하는 어리석은 실수를하고 있다고 생각합니다. 나는 마일 문제를 이해하는 몇 가지 코드를 무관 :MySQL 삽입 값

MyObject.java을 내가 tje 저장

@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); 

함수 dtabase에 저장할 객체 느릅 나무 개체를 데이터베이스에 저장

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" /> 

......... 이?? 미리 감사드립니다.

+0

'id' 열과 다른 null이 아닌 제약 조건이없는'object' 테이블이 있습니까? 'id' 열의 유형은 무엇입니까? – Thomas

+0

'id' 열은 무엇입니까? 그 레코드를 삽입하려고 mysql 콘솔 – Bozho

+0

그것은 문자열. Check Object.java @Column (name = "id", unique = true, length = 50, nullable = false) –

답변

0

다른 패키지에 같은 이름의 다른 클래스가 있었는데 문제가 생겼습니다. 미래에 대한 충고 :이 작은 것들을 chach !!

0

Object이라는 클래스를 정의 했으므로 클래스 Object과 java 클래스 java.lang.Object 사이에 이름 충돌이있을 수 있습니다. 실수로 java.lang.Object을 저장하려고 시도 할 가능성이 있습니다.

빠른 테스트를 위해 : 클래스를 MyObject (eclipse, netbeans, ... 사용)으로 리팩터링하십시오. Object이라는 유형이 이 아니고 리팩터링 후 변경된 인 경우 제 추측이 맞을 수 있습니다.

+0

실제로 개체는 내 개체의 이름이 아니며 일반 이름을 썼습니다. 어쨌든 나는 내 질문을 편집 할 것이다. 감사합니다 –

+0

@ mujer esponja - ... 더 나은 일반 이름을 다음 번에 선택하십시오 :( –