Java Seam-IdentityManager.isUserEnabled()的问题

Java Seam-IdentityManager.isUserEnabled()的问题,java,security,jpa,seam,identity-management,Java,Security,Jpa,Seam,Identity Management,我有一个JBossSeam应用程序,它利用Seam的IdentityManager和JpaIdentityStore组件来处理用户帐户创建和身份验证。我的components.xml文件设置正确,我能够使用IdentityManager创建帐户,没有问题 我创建了一个页面,允许我执行基本的帐户维护,例如启用/禁用帐户。但是,每当我调用IdentityManager上的isUserEnabled(stringusername)方法时,它总是返回false。JpaIdentityStore中的相应方

我有一个JBossSeam应用程序,它利用Seam的
IdentityManager
JpaIdentityStore
组件来处理用户帐户创建和身份验证。我的
components.xml
文件设置正确,我能够使用
IdentityManager
创建帐户,没有问题

我创建了一个页面,允许我执行基本的帐户维护,例如启用/禁用帐户。但是,每当我调用
IdentityManager
上的
isUserEnabled(stringusername)
方法时,它总是返回false。
JpaIdentityStore
中的相应方法也返回false。这两种情况都会发生,尽管我可以看到数据库中的帐户已启用。我的用户帐户类注释如下:

@Name("user")
@Entity(name = "UserAccount")
@Table(name = "tbl_user_acct", uniqueConstraints = { @UniqueConstraint(columnNames = "username") })
public class UserAccountBean extends BaseDomainEntity implements
        VersionedDomainEntity {

    private static final long serialVersionUID = -3573332411594504888L;

    @UserEnabled
    private boolean enabled;

        ...

}
我对
IdentityManager
类的任何其他方面(更改密码、创建/删除帐户等)都没有任何问题。我遇到的唯一错误是在尝试确定用户是否启用时。我没有收到任何异常或错误消息,只是返回了错误的结果

还有其他人遇到过这种情况吗?知道如何最好地开始解决此问题吗

编辑:一些附加信息


我注意到,当我调用
disableUser(stringusername)
时,我确实看到数据库在ENABLED列中反映了这一点。此外,当我调用
enableUser(字符串用户名)
时,我立即看到该帐户已启用。但是,如果我导航到另一个页面,然后返回并调用
isUserEnabled()
,它仍然显示为false。

原来是与延迟抓取相关的问题。我有一个UserProfile对象,上面有一个userAccount属性。该关系是延迟获取的。当我将其更改为“即时抓取”后,我收到了来自isUserEnabled()的相应响应。

在调用isUserEnabled(username)和启用Hibernate SQL日志记录的行中有一个断点,您是否可以看到“选择…”。。。从tbl_user_acct,其中username=?'在日志中,当您让该方法执行时?