小编Pat*_*iel的帖子

Hibernate将NULL值粘贴到列表中

我继承了一些使用Hibernate的Java代码.使用此代码的一些人现在报告说他们在整个地方都获得了NullPointerExceptions.

我已经能够跟踪它了,发现当我们执行一个从数据库中提取对象列表的查询时,它有一个对象列表(从另一个表中提取)Hibernate似乎在list(NULL值).所以列表可能看起来像这样:

Object
Object
NULL
Object
Run Code Online (Sandbox Code Playgroud)

我们用来从数据库中提取信息的代码是:

List<PrinterGroup> groups = 
    this.getSession().createQuery( "from PrinterGroup" ).list();
Run Code Online (Sandbox Code Playgroud)

然后在每个PrinterGroup内部是一个包含NULL值的过滤器列表.

虽然我可以到处找到每个实例,但是我们遍历这个列表并添加一个NULL检查我觉得它是一个bandaid修复,并且必须有一种方法告诉Hibernate不要拉空值.

编辑:

  • 我们正在使用Hibernate 3.2.2

EDIT2:

所以数据库似乎令人困惑.PrinterGroup - > Filter关系是一对多关系.所以PrinterGroups有一个过滤器列表.问题是,当数据库出来时,过滤器列表中包含空值(顺便说一下,数据库中没有空值),列表如上所示.

EDIT3:

这是PrinterGroup HBM中的映射relavant picese

<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>
Run Code Online (Sandbox Code Playgroud)

Filter是一个非常基本的POJO映射.

java hibernate

11
推荐指数
1
解决办法
1万
查看次数

在具有超时的连接调用之后,Java线程会发生什么

在使用超时值调用join并且超时通过后,Java线程处于什么状态.例如,您有以下代码:

Thread thread = new Thread();
thread.start();
thread.join(TIMEOUT);
Run Code Online (Sandbox Code Playgroud)

并且超时传递并且线程没有返回状态是什么?我需要注意什么才能确保我不泄漏线程.我最初的假设是在加入调用之后执行以下操作:

if (thread.isAlive())
{
   thread.interrupt();
   thread = null;
}
Run Code Online (Sandbox Code Playgroud)

检查线程是否仍在运行,如果是,则中断它,然后将其清零以确保它被垃圾收集.

java multithreading

7
推荐指数
1
解决办法
2万
查看次数

将DataGridViewColumn绑定到第2级对象

我想使用.NET 4.0将我的DataGridView类中的列绑定到C#中的第二级对象中的条目.例如:

我有对象A:

public class A
{
   public long id;
   public B bClass;
}
Run Code Online (Sandbox Code Playgroud)

和对象B.

public class B
{
   public long id;
   public string name;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将类A的列表声明为DataGridView上的数据源,但是将其中一列绑定到B类中的name属性?

我把它提炼了一点,但希望这不会令人困惑.谢谢您的帮助!

.net winforms c#-4.0

5
推荐指数
1
解决办法
1194
查看次数

如何使用Spring Security在多个基于JVM的应用程序上实现单点登录

我目前正在尝试在多个基于JVM(Grails,Servlets)的Web应用程序上实现单一登录解决方案,这些Web应用程序当前都部署在同一个servlet容器中(目前是Tomcat,但不希望将我的解决方案仅限于Tomcat).所有Web应用程序共享一个公共数据库

我已经看过使用CAS或其他第三方库创建新的Web服务来处理单点登录的各种选项,但似乎没有一个真正满足业务需求.我当前的实现涉及创建一个新的jar库,它具有AuthenticationProviders的通用实现,以及基于Spring Security的预身份验证过滤器.

在这种方法中,我有多个AuthenticationProviders(当前是Active Directory和Database)供应用程序进行身份验证.验证成功后,将在包含用户的会话表,过期时间和令牌中插入一行.令牌也将作为cookie存储在用户的计算机上,并用于验证它们在预认证过滤器中是否具有当前会话.

在我想要确保我没有创建一个巨大的安全问题之前从未这样做过,我也想知道创建令牌需要什么?此时一个简单的GUID似乎足够了吗?

目前我们正在开发Spring Security 3.0.x,尚未升级到3.1.

提前致谢.

java spring-security java-ee

5
推荐指数
1
解决办法
2732
查看次数

NHibernate重复类/实体映射问题

我已经开始涉足C#.NET和NHibernate了,我终于陷入了一个我似乎无法弄清楚的例外,谷歌没有帮助.

我得到一个NHibernate.DuplicateMappingException:我的Parent类上的重复类/实体映射.下面是我的父类的映射文件,以及使用Parent类的Youth类:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="Surrix.Cerberus.YouthData"
                   namespace="Surrix.Cerberus.YouthData.Domain">
  <class name="Parent">
    <id name="parentId">
      <generator class="guid" />
    </id>
    <property name="firstName" not-null="true" />
    <property name="lastName" not-null="true" />
    <property name="homePhone" />
    <property name="parentEmail" />
    <property name="relationshipToYouth" />

    <!-- Address component that should map to the Address class -->
    <component name="parentAddress">
      <property name="street" />
      <property name="state" />
      <property name="zipCode" />
      <property name="city" />
    </component>

  </class>

</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

以下是青年班的相关部分(相当大)

<set name="YouthParents" table="YouthParents" cascade="none">
  <key column="youthId" />
  <many-to-many column="parentId" class="Parent"/>
</set>
Run Code Online (Sandbox Code Playgroud)

只有其他的东西是Youth类也有firstName和lastName属性,但我看不出这是一个问题.

c# nhibernate

4
推荐指数
2
解决办法
1万
查看次数

什么是正确的C#命名空间用法?

我来自Java背景,我看到很多人都说命名空间=包,但是看看可用的代码,我觉得人们不会像使用包那样使用命名空间.

目前我正在研究一个DLL来管理我对两个Windows应用程序之间共享的数据库的所有数据访问.到目前为止,我一直在创建像Java一样的软件包,所以我有一个Domain,Services,DAO(我把它称为Repositories)子命名空间从我的顶级.它是否正确?是否有人为命名空间编写了最佳实践?我认为这可能是一个非常小的问题,但我不想反对谷物这样说.

c# namespaces

4
推荐指数
1
解决办法
3325
查看次数

如何将对象序列化到数据库以便Hibernate在Java中读取

我目前正在编写一个工具,以插入使用Hibernate的现有企业应用程序中。我的工具在安装时需要将一些值写入数据库,其中的一列是设置描述符对象的序列化版本。该对象有两个对象列表和一些基本类型。

我目前的做法是创建ByteArrayOutputStreamObjectOutputStream然后写ObjectOutputStreamByteArrayOutputStream,然后将得到的字节数组通过与Spring的1SimpleJdbcTemplate1的SQL。我目前使用此方法的问题是,当企业工具拉动我的行时,它无法使用以下命令反序列化该列:

org.springframework.orm.hibernate3.HibernateSystemException: could not deserialize; nested exception is org.hibernate.type.SerializationException: could not deserialize
Run Code Online (Sandbox Code Playgroud)

我觉得我可能需要序列化内部对象,但是不知道如何做到这一点并将所有内容保持在一起。

java database serialization hibernate

4
推荐指数
1
解决办法
1万
查看次数

将java.util.Date对象转换为Windows FILETIME结构

我有一个Java应用程序,我需要使用JNA调用Windows DLL.我需要实际调用该函数采用一个__int64(在内部它分裂成所述的低/高部分的本FILETIME结构).给定一个java.util.Date对象,我如何将其转换为适合的格式FILETIME

java winapi jna

3
推荐指数
1
解决办法
2889
查看次数