我尝试向mysql搜索值时出错
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Obtención de la sesión con Hibernate 4.x
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Session session = sessionFactory.openSession();
BuscaCorreo(session);
}
private static void BuscaCorreo(Session session) {
int id = 1;
LoginDAO loginDAO = new LoginDAO(session);
Login login = new Login();
login.setId(id);
loginDAO.find(login);
System.out.println(login.getCorreo());
}
@Entity
@Id
private long id;
private String correo;
private String clave;
public Login(){
}
public Login(long id, String correo, String clave) {
super();
this.id = id;
this.correo = correo;
this.clave = clave;
}
public String getCorreo() {
return correo;
}
public void setCorreo(String correo) {
this.correo = correo;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
private Session session;
public LoginDAO(Session session) {
this.session = session;
}
public String find(Login id) {
String login = null;
try {
login = (String) session.load(Login.class, id);
} catch (Exception e) {
e.printStackTrace();
}
return login;
}
当我运行应用程序时有此错误
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.TypeMismatchException: Provided id of the wrong type for class com.utp.soft6.model.enteties.Login. Expected: class java.lang.Long, got class com.utp.soft6.model.enteties.Login
null
at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:132)
at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1079)
at org.hibernate.internal.SessionImpl.access$2200(SessionImpl.java:172)
at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.getReference(SessionImpl.java:2402)
at org.hibernate.internal.SessionImpl.load(SessionImpl.java:967)
at com.utp.soft6.model.LoginDAO.find(LoginDAO.java:26)
at com.utp.soft6.hola.BuscaCorreo(hola.java:65)
at com.utp.soft6.hola.doGet(hola.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
错误消息是不言自明的:
为com.utp.soft6.model.enteties.login类提供了错误类型的id。应为:类java.lang.Long,got类com.utp.soft6.model.enteties.login
这意味着,当您在以下行加载按ID登录时
login = (String) session.load(Login.class, id);
/**
* Loads and returns the Login entity identified by the given identifier
*/
public Login find(long id) {
return (Login) session.load(Login.class, id);
}
您的代码中还有其他的大问题,比如读取配置并在每个请求时初始化Hibernate,而不是只执行一次。
阅读手册。
问题内容: 在hibernate状态下,我可以执行以下操作 现在,如果我想获取int和String怎么办? 现在列表的结构是什么? 问题答案: 这可以。您唯一需要了解的是它将返回如下列表:
上下文:我有两个表Secret_Agent和secret_mission。两者之间有一种@manytomany的关系,因为可以给许多特工执行相同的秘密任务,而同一个特工可以给许多秘密任务。 表SECRET_AGENT 列SecretAgentId,SecretAgentName 表SECRET_MISSION 列SecretMissionId、SecretMissionName、SecretMis
以下是为主页编写的类,http://www.royalmailgroup.com/ 我试图点击“关于我们”链接和FOI联系人。 } } [VerboseTestNG]失败:"sample.keyword.FeeToPayTest"-sample.keyword.FeeToPayTest.testOpenApplication()在9033毫秒内完成[VerboseTestNG]org.openqa
我希望在输入值字段中输出选项中的值。因此,如果我选择红色,我希望在输入值中输出红色
问题内容: 我们正在构建一个电子商务应用程序。我们正在将JAVA堆栈与Hibernate和Spring框架一起使用。与所有电子商务应用程序一样,我们需要在我们的电子商务应用程序中构建搜索功能。 因此,我们遇到了Hibernate Search 和Apache Solr 。有人可以列出两者的优缺点,以便我们为Enterprise Search选择理想的解决方案吗? 问题答案: Apache Solr
我有一个数据库表Cars,每一行代表不同的车型,具有不同的id、品牌、型号和数量。我想使用Hibernate编写一个查询,以获得按品牌划分的最受欢迎汽车的数量,例如,在DB中有5辆大众Polo、3辆大众Tiguan、4辆斯柯达Octavia、8辆斯柯德Rapid,我想得到一个结果:大众:5辆斯科达:8辆 这是我的疑问: 接口车看起来是这样的: 该查询在IntelliJ中工作正常,它带来了预期的结果