我一直在大量搜索以找到与简单 SQL 中的 Ucase/Lcase 函数等效的 hibernate/投影代码(/函数)。这种东西真的存在吗?在进一步拖延之前,我将解释我的情况。
我有两个表(一对一)- StudentBean 和 AddressBean。我在 AddressBean 中使用一个简单的对象(Studentbean)嵌入机制来跟踪它们的关系。我在我的 AddressBean Manager 类中使用以下方法从数据库中获取整个记录(从 2 个表连接)。
public List getAllDetails()
{
Criteria c = sessionFactory.getCurrentSession().createCriteria(AddressBean.class);
c.createAlias("studid", "student");
c.setProjection(Projections.projectionList()
.add(Projections.property((String)"student.studid"), "studid")
.add(Projections.property((String)"student.rollno"), "rollno")
.add(Projections.property((String)"student.name"), "name")
.add(Projections.property((String)"student.phone"), "phone")
.add(Projections.property((String)"address"), "address")
.add(Projections.property((String)"place"), "place")
.add(Projections.property((String)"city"), "city"));
c.addOrder(Order.asc("city"));
c.setResultTransformer((ResultTransformer)Transformers.ALIAS_TO_ENTITY_MAP);
return c.list();
}
返回的列表根据“城市”列值正确排序。现在我的要求是将城市列值转换为纯“大写”,就像我们简单地转换为 "SELECT UCASE(City) AS Customer, City FROM Customers;” 在 Simple SQL 中。
这可能吗?
最佳答案
@Column(name = "City")
@ColumnTransformer(read = "UPPER(City)")
private String city;
如上所述更改实体类的 city
属性并尝试...
关于java - hibernate/投影中的 Ucase 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39264071/