2015-04-23 99 views
0

1.root原因嵌套的例外是org.hibernate.exception.SQLGrammarException:無法提取的ResultSet,Spring4,Hibernate4.please幫我

2015年4月23日下午2時29分04秒org.apache .catalina.core.StandardWrapperValve invoke SEVERE:servlet [appServlet]在上下文 with path [/ bse]中引發Servlet.service()拋出異常[Request processing failed;嵌套0​​例外是org.hibernate.exception.SQLGrammarException:無法 提取結果集]與根源 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表 「bsedb.client」不在 sun.reflect存在.NativeConstructorAccessorImpl.newInstance0(本機方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知 來源)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 來源)在java.lang.reflect.Constructor.newInstance(來源不明) at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)at com.mysql.jdbc.Util.getInstance(Util.java:384)at com.mysql.jdbc.S QLError.createSQLException(SQLError.java:1052)在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)在 融爲一體。 mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838)在 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082) 在 com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2212) 在 org.apache.commons.dbcp2.DelegatingPreparedStatement。 executeQuery(DelegatingPreparedStatement.java:82) at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82) 在 org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:80) 在org.hibernate.loader。 Loader.getResultSet(Loader.java:2065)在 org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1862) 在 org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1838) 在組織.org.hibernate.loader.Loader.doList(Loader.java:259) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354) at org.hibernate.loader.Loader.doList(Loader.java:2553) )at org.hibernate.loader.Loader.doList(Loader.java:2539)at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)在 org.hibernate.loader.Loader.list(Loader.java:2364)

2.DaoImplation

@SuppressWarnings("unchecked") 
@Transactional 
@Override 

public List<Client> getClientList(String searchWord) 
{ 

String sql="select * from client c join clientcategory cc on c.id=cc.client_id where match(cc.clientkeyword) against(':searchKey' in boolean mode)"; 


    SQLQuery query = (SQLQuery) getCurrentSession().createSQLQuery(sql) 
     .addEntity(Client.class) 
     .setParameter("searchKey", searchWord); 

     List result = query.list(); 


    return result; 
} 

3.model類

@Entity 
@Table(name="BSE_CLIENT",uniqueConstraints = { 

    @UniqueConstraint(columnNames = "ID"), 
    @UniqueConstraint(columnNames = "CLIENTEMAIL"), 
    @UniqueConstraint(columnNames = "CLIENTWEBSITE")}) 

public class Client { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Column(name="ID", unique=true, nullable=false) 
@NotNull 
private long clientId; 

@Column(name = "CLIENTNAME", nullable = false) 
@NotEmpty @NotNull 
private String clientName; 

@Temporal(TemporalType.DATE) 
@Column(name = "CLIENTREGISTRATIONDATE", nullable = false) 
@NotNull 
private Date clientRegDate; 

@Column(name = "CLIENTEMAIL", nullable = false) 
@NotEmpty @Email 
private String clientEmail; 

@Column(name = "CLIENTWEBSITE", nullable = false) 
private String clientWebsite; 

@Column(name = "CLIENTPROFILE", nullable = false) 
private String clientProfile; 

@Column(name = "CLIENTAPPROVED", nullable = false) 
@NotNull 
private Boolean clientApproved; 

@Temporal(TemporalType.DATE) 
@Column(name = "CLIENTAPPROVEDATE", nullable = false) 
@NotNull 
private Date clientApprovedDate; 

@Column(name = "CLIENTPASSWORD",nullable = false) 
@NotNull 
private String clientPassword; 

@Column(name = "CLIENTACTIVATION", nullable = false) 
private String clientActivation; 

@Column(name = "ADDRESSLINE1", nullable = false) 
@NotNull 
private String clientAddressLine1; 

@Column(name = "ADDRESSLINE2", nullable = false) 
private String clientAddressLine2; 

@Column(name = "CLIENTCITY", nullable = false) 
@NotNull 
private String clientCity; 

@Column(name = "CLIENTSTATE", nullable = false) 
@NotNull 
private String clientState; 

@Column(name = "CLIENTCOUNRTY", nullable = false) 
@NotNull 
private String clientCountry; 

@Column(name = "CLIENTPINCODE", nullable = false) 
private String clientPincode; 



@OneToOne(mappedBy = "client") 
private ClientAccount clientAccount; 

@OneToMany(mappedBy="client",fetch=FetchType.EAGER) 
@Cascade({CascadeType.ALL}) 
private Set<ClientCategory> clientCategory; 

@OneToMany(mappedBy="client",fetch=FetchType.EAGER) 
@Cascade({CascadeType.ALL}) 
private Set<ClientContact> clientContact; 

@OneToMany(mappedBy="client") 
@Cascade({CascadeType.ALL}) 
private Set<ClientImage> clientImage; 

@OneToMany(mappedBy="client") 
@Cascade({CascadeType.ALL}) 
private Set<ClientVideo> clientVideo; 

@OneToOne(mappedBy="client") 
private UserClient userclient; 

@OneToOne(mappedBy="client") 
private CustomerClientRatings customerclientRatings; 


public Client(){} 


public long getClientId() { 
    return clientId; 
} 


public void setClientId(long clientId) { 
    this.clientId = clientId; 
} 


public String getClientName() { 
    return clientName; 
} 


public void setClientName(String clientName) { 
    this.clientName = clientName; 
} 


public Date getClientRegDate() { 
    return clientRegDate; 
} 


public void setClientRegDate(Date clientRegDate) { 
    this.clientRegDate = clientRegDate; 
} 


public String getClientEmail() { 
    return clientEmail; 
} 


public void setClientEmail(String clientEmail) { 
    this.clientEmail = clientEmail; 
} 


public String getClientWebsite() { 
    return clientWebsite; 
} 


public void setClientWebsite(String clientWebsite) { 
    this.clientWebsite = clientWebsite; 
} 


public String getClientProfile() { 
    return clientProfile; 
} 


public void setClientProfile(String clientProfile) { 
    this.clientProfile = clientProfile; 
} 


public Boolean getClientApproved() { 
    return clientApproved; 
} 


public void setClientApproved(Boolean clientApproved) { 
    this.clientApproved = clientApproved; 
} 


public Date getClientApprovedDate() { 
    return clientApprovedDate; 
} 


public void setClientApprovedDate(Date clientApprovedDate) { 
    this.clientApprovedDate = clientApprovedDate; 
} 


public String getClientPassword() { 
    return clientPassword; 
} 


public void setClientPassword(String clientPassword) { 
    this.clientPassword = clientPassword; 
} 


public String getClientActivation() { 
    return clientActivation; 
} 


public void setClientActivation(String clientActivation) { 
    this.clientActivation = clientActivation; 
} 


public String getClientAddressLine1() { 
    return clientAddressLine1; 
} 


public void setClientAddressLine1(String clientAddressLine1) { 
    this.clientAddressLine1 = clientAddressLine1; 
} 


public String getClientAddressLine2() { 
    return clientAddressLine2; 
} 


public void setClientAddressLine2(String clientAddressLine2) { 
    this.clientAddressLine2 = clientAddressLine2; 
} 


public String getClientCity() { 
    return clientCity; 
} 


public void setClientCity(String clientCity) { 
    this.clientCity = clientCity; 
} 


public String getClientState() { 
    return clientState; 
} 


public void setClientState(String clientState) { 
    this.clientState = clientState; 
} 


public String getClientCountry() { 
    return clientCountry; 
} 


public void setClientCountry(String clientCountry) { 
    this.clientCountry = clientCountry; 
} 


public String getClientPincode() { 
    return clientPincode; 
} 


public void setClientPincode(String clientPincode) { 
    this.clientPincode = clientPincode; 
} 


public ClientAccount getClientAccount() { 
    return clientAccount; 
} 


public void setClientAccount(ClientAccount clientAccount) { 
    this.clientAccount = clientAccount; 
} 


public Set<ClientCategory> getClientCategory() { 
    return clientCategory; 
} 


public void setClientCategory(Set<ClientCategory> clientCategory) { 
    this.clientCategory = clientCategory; 
} 


public Set<ClientContact> getClientContact() { 
    return clientContact; 
} 


public void setClientContact(Set<ClientContact> clientContact) { 
    this.clientContact = clientContact; 
} 


public Set<ClientImage> getClientImage() { 
    return clientImage; 
} 


public void setClientImage(Set<ClientImage> clientImage) { 
    this.clientImage = clientImage; 
} 


public Set<ClientVideo> getClientVideo() { 
    return clientVideo; 
} 


public void setClientVideo(Set<ClientVideo> clientVideo) { 
    this.clientVideo = clientVideo; 
} 


public UserClient getUserclient() { 
    return userclient; 
} 


public void setUserclient(UserClient userclient) { 
    this.userclient = userclient; 
} 


public CustomerClientRatings getCustomerclientRatings() { 
    return customerclientRatings; 
} 


public void setCustomerclientRatings(CustomerClientRatings customerclientRatings) { 
    this.customerclientRatings = customerclientRatings; 
} 

} 

4.

MySQL數據庫圖像 在這裏數據庫中也有'bsedb.client'在那裏。

enter image description here

回答

0

我覺得這裏的問題是,該表bsedb.client不存在,因爲在你的sceenshot如表名是:

bsedb.bse_client' 

而且它這個註解是由於:

@Table(name="BSE_CLIENT",... 

所以,簡單地將其更改爲:

@Table(name="CLIENT", ... 

而您的查詢將完美工作。

+0

謝謝你這麼多.. :) –

+0

太棒了,很高興它有幫助。 –

相關問題