有没有工具可以从sql查询开始生成java hibernate代码?(就像hibernate所做的相反,从java代码生成selects )它将帮助我将所有的查询转移到hibernate!
我的意思是,如果我有一个带有如下参数的select:
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;为了最终获得类似下面这样的东西:
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的路径)
发布于 2012-05-23 22:16:39
您拥有HQL,它是一种类似SQL的方言,可以与Hibernate一起使用。您可以使用来自实体的字段名,而不是来自表的字段名。它支持joins等。
事实上,Criteria API对joins的支持非常有限(至少我上一次尝试使用时是如此),并且我已经完成了从Criteria API到HQL的所有重写,所以我现在只是简单地将Criteria API作为没有选项。
在HQL中,您还可以使用SQL函数,包括SELECT和WHERE部分、嵌入式函数和您自己编写的函数。
https://stackoverflow.com/questions/10720261
复制相似问题