java - hibernate/投影中的 Ucase 等价物?

标签 java mysql hibernate

我一直在大量搜索以找到与简单 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/

相关文章:

java - 使用无状态 session 保存 ManyToMany 集合

java - 在 Spring 3 中,Web 感知应用程序上下文是什么意思

java - 如何使用子关联属性作为 JPA 父实体中的映射键

c# - 使用 MySQL 在 ASP.NET 中登录错误

mysql - 无法建立数据库连接

java - TimestampType 设置覆盖错误

hibernate 正在不必要地更新多对多

java - BlueJ 调用公共(public)方法空指针异常(java.awt.container)

java - ThreadLocal - 如果我们在构造函数中设置值,是否需要它?

mysql - mysql 上的完全外连接?