2011-12-21 7 views
0

간단한 온라인 경매 시스템을 개발하기 위해 봄과 겨울잠을 사용하고 있습니다.Spring, JPA 및 최대 절전 모드 문제

@Id 
@GeneratedValue 
@Column(name="item_id") 
private Integer itemId; 

@Column 
private String name; 

@Column 
private String summary; 

@Column 
private double price; 

@Column 
private String description; 

@Column(name="sDate", insertable=false, updatable=false, columnDefinition="timestamp default current_timestamp") 
@Generated(value=GenerationTime.INSERT) 
@Temporal(TemporalType.TIMESTAMP) 
private Date sDate; 

@Temporal(TemporalType.TIMESTAMP) 
private Date cDate; 

sDatecDate 날짜를 시작하고 각각 날짜를 닫는 : 내가 좋아하는 데이터 변수를 포함하는 POJO "Items.java"를 만들었습니다. sDate은 자동으로 삽입되는 현재 날짜이고 cDate은 마감 날짜로 양식을 통해 판매자가 입력합니다. 그래서, 나는 (이름, 요약, 가격, 설명 및 마감 날짜)를 JSP 폼을 사용하여 판매자로부터 입력을 받아서 mysql에 삽입하려고한다. 날짜를 제외한 모든 데이터가 삽입됩니다. 날짜 값은 데이터베이스에서 NULL입니다. 왜 그래야만하지?

도움을 주시면 감사하겠습니다. 나는이 문제를 많이 찾았지만 해결책을 얻을 수 없었다.

답변

1

날짜에 대한 @Column 주석에 "Insertable = false"가 있기 때문에 생각합니다.

boolean insertable 
(Optional) Whether the column is included in SQL INSERT statements generated by the persistence provider. 
Default value: 
true 
Since: 
JPA 1.0 

참조 : http://www.objectdb.com/api/java/jpa/Column

그것을 제거하십시오.

+0

답장을 보내려면 안녕하세요. 하지만 나는 sDate가 아닌 cDate에 대해 이야기하고 있습니다. sDate는 괜찮으며 현재 시간 스탬프가 자동으로 mysql에 삽입되지만 jDesform (예 : 판매자가 (이름, 요약, 가격, 설명, 입찰 마감 날짜)을 입력하는 등)에서 얻은 sDate는이 종료 날짜/cDate가 아닙니다. 삽입 됨). 양식에서 데이터를 가져 오는 동안 날짜 값은 문자열 형식이며 DATETIME 형식으로 변환되지 않지만 스프링 컨트롤러 클래스로 변환 할 수있는 방법은 무엇입니까 ?? – user1108823

1

insertable=false으로 설정하면 Oracle의 트리거 또는 기본값과 같은 데이터베이스 메커니즘을 통해이 열의 값을 제공해야합니다. 응용 프로그램 코드는 시간 소인을 생성하지 않습니다.