首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从sql代码自动生成java hibernate代码

从sql代码自动生成java hibernate代码
EN

Stack Overflow用户
提问于 2012-05-23 20:49:19
回答 1查看 560关注 0票数 1

有没有工具可以从sql查询开始生成java hibernate代码?(就像hibernate所做的相反,从java代码生成selects )它将帮助我将所有的查询转移到hibernate!

我的意思是,如果我有一个带有如下参数的select:

代码语言:javascript
复制
 select ta.id label, ta.nume value
    from ar 
    left outer join ta ta on idp = ta.ID
    where ta.status = 1
    and (dp = 0 OR ps = idps_)
    and status = 1
order by ta.nume;

为了最终获得类似下面这样的东西:

代码语言:javascript
复制
 DetachedCriteria criteria = DetachedCriteria.forEntityName("ar");
    criteria.createAlias("ta", "ta", Criteria.LEFT_JOIN);
    criteria.add(Restrictions.eq("ta.status", 1));
    Criterion eq = Restrictions.eq("ps.id", idps_);
    Criterion isZero = Restrictions.eq("dp.id", 0);
    Criterion or = Restrictions.or(eq, isZero);
    criteria.add(or);
    criteria.add(Restrictions.eq("status", 1));
    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.property("ta.id"), "value");
    projectionList.add(Projections.property("ta.nume"), "label");
    criteria.setProjection(Projections.distinct(projectionList));
    criteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
    criteria.addOrder(Order.asc("ta.nume"));

或者类似的使用地图作为输出的东西...

向工具提供我存储实体/bean与表的映射的路径(如果bean带有注释,则为bean的路径)

EN

回答 1

Stack Overflow用户

发布于 2012-05-23 22:16:39

您拥有HQL,它是一种类似SQL的方言,可以与Hibernate一起使用。您可以使用来自实体的字段名,而不是来自表的字段名。它支持joins等。

事实上,Criteria API对joins的支持非常有限(至少我上一次尝试使用时是如此),并且我已经完成了从Criteria API到HQL的所有重写,所以我现在只是简单地将Criteria API作为没有选项。

在HQL中,您还可以使用SQL函数,包括SELECT和WHERE部分、嵌入式函数和您自己编写的函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10720261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档