2015-10-08 165 views
0

我想獲取具有最大版本的FileRepository行的特定fileId。但是,下面的異常被拋出:休眠:ClassCast異常

java.lang.ClassCastException:java.lang.Integer中不能轉換到com.xxx.xxx.xxx.FileRepository

fileRepo = (FileRepository)session.createCriteria(FileRepository.class,"fileRepository") 
        .createAlias("fileRepository.file", "file") 
        .add(Restrictions.eq("file.fileId", file.getFileId())) 
        .setProjection(Projections.max("version")).uniqueResult(); 

回答

2
.setProjection(Projections.max("version")).uniqueResult(); 

投影手段接收特定的列值而不是行。

如果您看到此操作會返回僅包含012.的ciriteria版本號。 因此錯誤。

刪除此投影或接收int。

+0

謝謝,那麼,我如何獲得具有休眠條件的最大版本的行? – Forkmohit

+0

@Forkmohit而不是投影,添加限制相同:) –

+0

找到答案,detachedcriteria。 http://stackoverflow.com/questions/3900105/get-record-with-max-id-using-hibernate-criteria – Forkmohit