【问题标题】:Filter the referenced property in hibernate在hibernate中过滤引用的属性
【发布时间】:2012-09-04 03:52:17
【问题描述】:

我有一个 StateMachine 表,其中包含键值对模型中的所有状态,例如:

stateId 州名

1 已启动 2 开始

class DeviceStates  {

    private int deviceStateId;
    private String deviceStateName;

}

我已经在设备表中引用了这个 StateMachine 表

class Device   {

   private Integer deviceId;
   private String serialNum;
   private Date lastModifiedDate;
   private DeviceStates deviceStatesByDeviceStateId;

}

我必须从 Device 表中过滤掉几个 DeviceState 进行搜索。 请帮助我如何编写我使用的标准

应该能够从Device中过滤掉一些DeviceStates

任何帮助将不胜感激......

【问题讨论】:

  • 您的 Device 和 DeviceStates 类没有映射吗?
  • 是的,它映射到 hbm.xml 文件中...

标签: java hibernate hibernate-criteria


【解决方案1】:
Criteria c = session.createCriteria(Device.class, "device");
c.createAlias("deviceStatesByDeviceStateId", "state");
c.add(Restrictions.in("state.id", setOfAcceptedStateIds));

如果类被命名为DeviceState(因为类的每个实例是一个且只有一个状态),并且如果该字段被命名为state 而不是deviceStatesByDeviceStateId,您的代码将更具可读性。

【讨论】:

  • 感谢您的建议,我会跟进的。
猜你喜欢
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多