组合键上的大小写不敏感的hibernate标准

我有一个像下面的示例一样使用复合键的hibernate实体。

class A{
B id; //this is the composite key for this class
int property1;
int property2;
int property3;
//getters and setters
}

class B{

String prop1;
String prop2;
String prop3;
}

在上面的例子中实体将B作为组合键 。 现在我编写了下面的标准,通过将复合键传递给crieteria来获得A对象。 示例代码如下。

B id=new B("Prop1Val","Prop2Val","Prop3Val");
(A) sessionFactory.getCurrentSession().get(A.class,id)

我的问题是:

  • 我假设上面的代码进行区分大小写的搜索。 如果我是对的,我该如何让它做不区分大小写的搜索?
  • 创建一个如下的标准来解决问题是否正确?

    Criteria criteria = sessionFactory.getCurrentSession()。createCriteria(A.class); criteria.add(Restrictions.eq( “id.prop1”,id.getProp1())IGNORECASE()); criteria.add(Restrictions.eq( “id.prop2”,id.getProp2())IGNORECASE()); criteria.add(Restrictions.eq( “id.prop3”,id.getProp3())IGNORECASE());

  • 有没有简单的方法来配置hbm文件默认情况下不区分大小写?

  • 请帮助我。


    您的标准看起来不错,但您的要求在默认情况下执行不区分大小写的操作没有多大意义。 数据库中的几行会有什么不同?

    我只需确保您的键属性总是小写,如果将大写值传递给B构造函数,或者通过自动将它们转换为小写字母,则抛出异常。

    如果其他应用程序在数据库中插入数据,则可以使用数据库中检查的约束来执行相同操作。

    链接地址: http://www.djcxy.com/p/37065.html

    上一篇: case insensitive hibernate criteria on composite key

    下一篇: How do I perform the SQL Join equivalent in MongoDB?