English 中文(简体)
将民族解放军的价值观列入名单
原标题:Hibernate sticking NULL values into list

我继承了使用Hibernate的 Java法典。 一些使用该法典的人现在报告说,他们正在全处获得Null PointerExceptions。

我已能够追踪这一结果,发现当我们执行从数据库中提取物体清单的询问时,该清单有物体清单(从另一个表格中提取)。 排泄物似乎留下了名单上的漏洞(NUL值)。 因此,清单可以看一看:

Object
Object
NULL
Object

我们用来将信息从数据库中删除的守则是:

List<PrinterGroup> groups = 
    this.getSession().createQuery( "from PrinterGroup" ).list();

之后,每个印刷小组都有一个在其中具有联合国扫盲十年价值的计算机清单。

尽管我可以走到一起,找到每一个例子,我们都会把这份清单放在一边,并增加全国人民代表大会的检查,但我感到,这只是一个帮派援助的固定点,必须告诉解放者不要把价值 null掉。

EDIT:

  • We are using Hibernate 3.2.2

EDIT:

因此,数据库似乎混淆不清。 印刷组――> 装饰关系是许多关系。 印刷组有一份过滤器清单。 问题是,从数据库中提取的过滤器清单具有无效价值(数据库中没有按原样的无效值),清单如上所示。

EDIT3:

这里是印刷集团HBM的图象。

<subclass name="PrinterGroup" discriminator-value="PG">
   <list name="filters"
              lazy="true"
              table="PG_FILTER"
               inverse="false"
                cascade="all-delete-orphan">

        <key>
           <column name="PG_ID" not-null="false"/>
        </key>
        <index column="LISTPOSITION"/>
        <one-to-many class="Filter"/>
     </list>

而激光器是POJO基本绘图。

最佳回答

http://docs.jboss.org/hibernate/stable/分光/en/html/collections.html# Collections-indexed” rel=“noreferer”><list>(或其他指数收集)和;list-index>>/a>?

除有制片和袋内杂质的收集图外,所有收集图都需要一个索引栏。 指数一栏是一栏,按阵列指数或清单指数或地图钥匙绘制地图。 ...... 阵列或名单的索引总是类型分类,并用该元件绘制。 图表一栏载有按违约数字为零的顺序分类的分类账。

我想,在使用索引收集时,如果您的索引栏有空白(即,其数值如<代码>0、<代码>1、<代码>3、<代码>7),则Hibernate将把由此产生的<代码>List与预期位置上的空数相隔。

问题回答
List<PrinterGroup> groups = this.getSession().createCriteria( PrinterGroup.class ).add(Restrictions.isNotNull("filters")).list();

因此,印刷组的物体本身并非无效,但它们没有提及类型的装饰物? 或非致命性提及载有无资格者的名单?

显而易见的答案是,该数据库包含一个印刷集团和过滤器之间的许多对手关系,其数据库对过滤器没有价值,例如:

 select * from printer_group_filter;
 id    printergroup_id   filter_id
 1     1                1
 2     1                null
 3     1                2
 4     2                1
 5     2                null

如果过滤器有可能完全无效,那么这一要求就符合你的要求。 或者,你可以使用NullObject idiom,将“无效过滤器”作为实际物体,但这种灯塔将与Hibernate直接连接。

如果过滤器无法失效,则将数据固定下来,对许多方面构成非核心限制,并固定你的输入验证,以防止增加更无效果的数据。

您应取消检查,或必须重新排列名单,以删除无效名单。 它的痛苦。

• 如何使用“总部L”进行脱覆过滤

List<PrinterGroup> groups = 
    this.getSession().createQuery( "Select pg from PrinterGroup pg where pg.filter is not null" ).list();

我假定你们的财产被称为过滤器。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签