组合键上的大小写不敏感的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