1.root cause
2015年4月23日下午2:29:04 org.apache.catalina.core.StandardWrapperValve 在上下文中为servlet [appServlet]调用SEVERE:Servlet.service() 与路径[/ bse]抛出异常[请求处理失败;嵌套 异常是org.hibernate.exception.SQLGrammarException:不能 根本原因提取ResultSet] com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表 ' bsedb.client'不存在于 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) at sun.reflect.NativeConstructorAccessorImpl.newInstance(未知 来源)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 来自java.lang.reflect.Constructor.newInstance(未知来源) 在com.mysql.jdbc.Util.handleNewInstance(Util.java:409)at com.mysql.jdbc.Util.getInstance(Util.java:384)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)at at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)at at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)at at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)at at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)at at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838)at at 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) 在 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)at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1862) 在 org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1838) 在org.hibernate.loader.Loader.doQuery(Loader.java:909)at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354) 在org.hibernate.loader.Loader.doList(Loader.java:2553)处 org.hibernate.loader.Loader.doList(Loader.java:2539)at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)at at 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 class
@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数据库图片 这里的数据库也是&#39; bsedb.client&#39;在那里。
答案 0 :(得分:1)
我认为这里的问题是表bsedb.client
不存在,因为如你的sceenshot所示,表名是:
bsedb.bse_client'
这是由于这个注释:
@Table(name="BSE_CLIENT",...
所以只需将其更改为:
@Table(name="CLIENT", ...
您的查询将完美无缺。