2012-01-22 48 views
1

我最近設置了一個spring + hibernate項目。我正在使用oracle數據庫。我有一個如代碼所示的實體。dataaccess error - > getInt沒有實現類oracle.jdbc.driver.T4CDateAccessor

@Entity 
@Table(name = "P_EMP_STATUS") 
public class EmployeeStatus extends AbstractEntity<Integer> implements Serializable{ 

private static final long serialVersionUID = 5451825528280340412L; 

private Integer id; 
private Region region; 
private Project project; 
private TaskType taskName; 
private String taskType 
private PrinceUser princeUser; 
private Integer assignee; 
private Date actualStartDate; 
private Date actualFinishDate; 
private Integer scheduledStartDate; 
private Integer scheduledFinishDate; 
private Integer effortSpent; 
private String empComments; 
private String mgrcomments; 
private String archive; 

@Id 
@Column(name = "ID") 
@GeneratedValue(generator="P_STATUS_SEQ", strategy=GenerationType.AUTO) 
@SequenceGenerator(name="P_STATUS_SEQ", sequenceName="P_STATUS_SEQ", allocationSize=1) 
public Integer getId() { 
    return id; 
} 

public void setId(Integer id) { 
    this.id = id; 
} 

@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name = "REGION_ID") 
public Region getRegion() { 
    return region; 
} 

public void setRegion(Region region) { 
    this.region = region; 
} 

@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name = "PROJECT_ID") 
public Project getProject() { 
    return project; 
} 

public void setProject(Project project) { 
    this.project = project; 
} 

@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name = "TASK_ID") 
public TaskType getTaskName() { 
    return taskName; 
} 

public void setTaskName(TaskType taskName) { 
    this.taskName = taskName; 
} 

@Column(name = "TASK_TYPE") 
public String getTaskType() { 
    return taskType; 
} 

public void setTaskType(String taskType) { 
    this.taskType = taskType; 
} 

@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name = "ASSIGNEE") 
public PrinceUser getPrinceUser() { 
    return princeUser; 
} 

public void setPrinceUser(PrinceUser princeUser) { 
    this.princeUser = princeUser; 
} 

@Column(name = "ACT_START") 
public Date getActualStartDate() { 
    return actualStartDate; 
} 

public void setActualStartDate(Date actualStartDate) { 
    this.actualStartDate = actualStartDate; 
} 

@Column(name = "ACT_FINISH") 
public Date getActualFinishDate() { 
    return actualFinishDate; 
} 

public void setActualFinishDate(Date actualFinishDate) { 
    this.actualFinishDate = actualFinishDate; 
} 

@Column(name = "SCH_START") 
public Integer getScheduledStartDate() { 
    return scheduledStartDate; 
} 

public void setScheduledStartDate(Integer scheduledStartDate) { 
    this.scheduledStartDate = scheduledStartDate; 
} 

@Column(name = "SCH_FINISH") 
public Integer getScheduledFinishDate() { 
    return scheduledFinishDate; 
} 

public void setScheduledFinishDate(Integer scheduledFinishDate) { 
    this.scheduledFinishDate = scheduledFinishDate; 
} 

@Column(name = "EFFORT_SPENT") 
public Integer getEffortSpent() { 
    return effortSpent; 
} 

public void setEffortSpent(Integer effortSpent) { 
    this.effortSpent = effortSpent; 
} 

@Column(name = "EMP_COMMENTS") 
public String getEmpComments() { 
    return empComments; 
} 

public void setEmpComments(String empComments) { 
    this.empComments = empComments; 
} 

@Column(name = "MGR_COMMENTS") 
public String getMgrcomments() { 
    return mgrcomments; 
} 

public void setMgrcomments(String mgrcomments) { 
    this.mgrcomments = mgrcomments; 
} 

@Column(name = "ARCHIVE") 
public String getArchive() { 
    return archive; 
} 

public void setArchive(String archive) { 
    this.archive = archive; 
} 

當我嘗試使用

Query query = em.createQuery("FROM EmployeeStatus"); 
return query.getResultList(); 

我收到以下錯誤從數據庫獲取數據。

java.sql.SQLException: Invalid column type: getInt not implemented for class oracle.jdbc.driver.T4CDateAccessor 
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) 
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) 
oracle.jdbc.driver.Accessor.unimpl(Accessor.java:358) 

我檢查了映射,一切看起來都沒問題。有人可以幫幫我嗎?

回答

8

你宣佈兩個日期爲整數性能:

private Integer scheduledStartDate; 
private Integer scheduledFinishDate; 

這些字段可能存儲在Date類型的數據庫列,並且數據庫驅動程序不知道如何將一個日期轉換爲整數。

+0

非常感謝!那確實是錯誤的。 – user732362

相關問題