问题标签 [hbm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
180 浏览

java - 是否可以在 HBM 的 SET 元素内定义默​​认对象?

假设我在父 hbm 文件中有一组映射:

是否有可能在 Parent hbm 中定​​义一个默认子节点,即当创建父节点时,会在该集合中添加一个子节点????

我知道这听起来很奇怪,但是由于一些性能问题,我必须尝试创建对服务器的最少调用(这里一个是保存父级,另一个调用是保存默认子级)。

我感谢所有的帮助。

谢谢

0 投票
2 回答
13637 浏览

hibernate - 设置属性的 HQL 查询

假设我有以下 HBM 映射:

在我的学生 POJO 中,我有以下内容:

我想运行以下 HQL 查询:

但是,hibernate 会抛出以下异常:

是否可以运行基于 Set 属性返回结果的休眠查询?在上面的示例中,我们可能想要查询所有正在学习“代数 I”或其他课程的学生?

编辑:我启用了适当的调试模式来让 Hibernate 输出它的实际 SQL 查询,这是它生成的查询:

0 投票
1 回答
1064 浏览

hibernate - 递归 HBM 映射

我可以在我的 HBM 映射中执行以下操作吗?

当我使用上述 HBM 映射时,我的服务器拒绝启动并出现以下错误:

Employee.java 的第 11 行只是说:

我应该如何模拟我的主管与员工的关系?主管没有特殊的 POJO,主管对象没有特殊字段。

0 投票
1 回答
210 浏览

java - 在 Hibernate 中映射具有 2 个导致问题的列表的对象

我正在尝试使用 hbm.xml 文件保存具有 2 个类似列表的对象。下面是我的模型对象和 HBM:

本节我的 HMB 如下:

但是,当从数据库中填充此对象时,我期望在“列表”中的任何内容也将显示在“其他列表”中。我想我错过了一个简单的配置更改以允许休眠正确存储这两个列表,但我无法弄清楚。

有什么帮助吗?

0 投票
3 回答
9939 浏览

mysql - 在 Hibernate 中将 Java byte[] 映射到 MySQL binary(64)

我在将字节数组映射到 Hibernate 中的 MySQL 数据库时遇到了一些麻烦,我想知道我是否遗漏了一些明显的东西。我的班级大致是这样的:

该表在 MySQL 5.5 中是这样定义的:

Hibernate 3.6.2 的映射看起来与此类似:

我只使用 hbm2ddl 进行验证,当我部署应用程序时它给了我这个错误:

如果在映射中使用 type="binary" 不会导致 Hibernate 期望列的类型是二进制(而不是 tinyblob),我不知道会发生什么。我花了一些时间谷歌搜索,但找不到确切的错误。类似错误的解决方案是...

  1. 在 <property> 上指定“长度”。这改变了 Hibernate 期望的类型,但它总是某种类型的 blob,而不是它找到的“二进制”类型。
  2. 不要在 property 元素上声明“类型”,而是嵌套一个 column 元素并给它一个 sql-type 属性。那是可行的,但这也会使绑定特定于 MySQL,所以如果可能的话,我想避免它。

这个设置有什么突出的地方会导致这种不匹配吗?如果我指定 type="binary" 而不是 "blob",为什么 Hibernate 需要一个 blob 而不是二进制文件?

0 投票
6 回答
37119 浏览

java - 使用休眠映射布尔值

我遇到了休眠问题。我最近将我的 hbm2ddl 设置为验证,它一直在抱怨错误的数据类型。除了布尔值,我已经解决了所有问题。

我的班级中有一个字段opener,映射为:

该列opener是 a tinyint (4),值为 1 或 0。到目前为止,我已尝试更改类型,但无济于事。我还尝试在 hibernate.cfg 中使用以下设置:

但我仍然遇到同样的错误。我究竟做错了什么?

注意:我无权访问数据库。

0 投票
1 回答
1510 浏览

nhibernate-mapping - nhibernate将sql存储过程映射到实体

编辑:我找到了另一种通过 NHibernate 调用存储过程并将其映射到我的实体的解决方案:

如您所见,在这里我们可以使用 SetResultTransformer 帮助设置参数并将结果映射到我们的实体。如果您的类中的属性等于存储过程结果集中列的名称,那么一切都很好。

老问题:

我有一些存储过程,想将我的实体映射到这个存储过程的结果记录集。我的 hbm 文件:

当我尝试执行此查询时,出现以下异常:

上:

有什么想法有什么问题吗?

0 投票
1 回答
1887 浏览

hibernate - Hibernate,将 .hbm.xml 文件添加到 cfg.xml 文件中

我需要一些信息

什么是 hbm.xml 文件???我只知道 *.hbm 文件

以及如何将 .hbm.xml 文件添加到 cfg.xml 文件中???

我想知道,因为当我尝试运行我的 jsp 时出现错误,他们说你必须将 .hbm.xml 文件添加到 cfg.xml 文件中!

这是错误:

org.apache.jasper.JasperException:javax.servlet.ServletException:net.sf.hibernate.MappingException:没有持久性:MyDB.student org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:531)org.apache .jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332 ) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

起因

javax.servlet.ServletException:net.sf.hibernate.MappingException:没有持久性:MyDB.student org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:901)org.apache.jasper.runtime.PageContextImpl.handlePageException (PageContextImpl.java:830) org.apache.jsp.JSP.index_jsp._jspService(index_jsp.java:103) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:68) javax.servlet.http.HttpServlet .service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) org.apache.jasper .servlet.JspServlet.service(JspServlet.java:332) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

起因

net.sf.hibernate.MappingException:没有持久性:MyDB.student net.sf.hibernate.impl.SessionFactoryImpl.getPersister(SessionFactoryImpl.java:347) net.sf.hibernate.impl.SessionImpl.getClassPersister(SessionImpl.java:2690 ) net.sf.hibernate.impl.SessionImpl.getPersister(SessionImpl.java:2697) net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:763) net.sf.hibernate.impl.SessionImpl.save(SessionImpl .java:738) org.apache.jsp.JSP.index_jsp._jspService(index_jsp.java:75) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:68) javax.servlet.http.HttpServlet.service (HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) org.apache.jasper.servlet .JspServlet.service(JspServlet.java:332) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

0 投票
0 回答
1700 浏览

mysql - 休眠映射不允许空时间戳

我正在开发一个基于 web 的应用程序,使用 spring-hibernate 结合 Mysql 作为数据库。我观察到休眠映射的 1 个问题,当类型为时间戳时,它不允许我设置 null。这是代码片段以便更好地理解

我的议程是 - 我想允许用户为 endTime 输入空值,而不是 stTime。

schedule.htm.xml

当我查看 Mysql 数据库时,它向我显示 Columns start_time [timestamp, NOTNULL]end_time [timestamp, NOTNULL]而不是end_time[timestamp, NULL].

因此,当我插入值时,end_time始终CURRENT_TIMESTAMP默认为。

如何创建 NULLABLEend_time列?

0 投票
3 回答
1993 浏览

hibernate - 生成的完整构造函数包含太多参数

我有一个包含许多字段的数据库表,当我使用 Hibernate .hbm 文件为该表生成 POJO 时,这些字段会导致问题。问题是生成的完整构造函数为 Java 生成了太多参数,这会引发编译器错误:

参数过多,参数 xxxx 超出了符合方法参数条件的 255 个字的限制

我想通过抑制 Hibernate 生成完整构造函数来解决这个问题。我的问题是

  1. 如果我没有完整的构造函数,Hibernate 会在运行时中断吗?
  2. 如何告诉我的 hbm 不要生成完整的构造函数?

提前感谢您的任何答案。