2013-07-05 85 views
3

我遇到了這樣的問題,不知道如何解決它。問題是下一個: 我有一個型號:Spring Data findBy枚舉

@Entity(name="Authority") 
@Table(name="AUTHORITIES") 
public class Authority implements GrantedAuthority { 

@Id 
private long id; 

@Enumerated(EnumType.STRING) 
@Column(name="authority") 
private asdevelopment.action.enums.Authority authority; 

/** 
* 
*/ 
private static final long serialVersionUID = 1L; 

@Override 
public String getAuthority() { 
    return authority.toString(); 
} 

/** 
* @return the id 
*/ 
public long getId() { 
    return id; 
} 

} 


public enum Authority { 

CLIENT_ROLE, ADMIN_ROLE; 

} 

我可以通過ID保存權威並獲得沒有任何問題。但隨着SOOS我調用庫下一個方法:

domain.Authority findByAuthority(enums.Authority authority); 

我得到下一個例外:

Hibernate: select top ? authority0_.id as id1_, authority0_.authority as authority1_ from AUTHORITIES authority0_ where authority0_.authority=? 
13:48:01.125 WARN [main] org.hibernate.engine.jdbc.spi.SqlExceptionHelper:143 - SQL Error: 1064, SQLState: 42000 
13:48:01.125 ERROR [main] org.hibernate.engine.jdbc.spi.SqlExceptionHelper:144 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2 authority0_.id as id1_, authority0_.authority as authority1_ from AUTHORITIES ' at line 1 

回答

4

select top ? ...當然不是MySQL的有效查詢。

檢查您的Hibernate配置中的SQL dialect setting

+0

啊是的,非常感謝!我有HSQLDialect作爲方言! – user1827052