关于 EJB 3.0 和 Toplink 框架的一些限制
Posted
技术标签:
【中文标题】关于 EJB 3.0 和 Toplink 框架的一些限制【英文标题】:Some limitations about EJB 3.0 and Toplink framework 【发布时间】:2009-11-13 01:29:28 【问题描述】:我有项目使用 EJB 3.0 并为模型层实现 Toplink 框架。
当使用 EJBQL 处理数据时,我发现它似乎有一些限制:
它无法处理数据时间,例如查找日期的一部分,例如日、月或年 在 from...to 中找不到日期时间 无法比较日期时间字段 它无法将类而不是实体映射到自定义的本机选择查询,因为我想从 SELECT 语句中获取列表数据,但是当我查询以防万一连接 2 个或更多表并将对象输出映射到一个类但不可能时@PersistenceContext 私有 EntityManager em;
em.createNativeQuery("SELECT a.usertype,b.username,b.userpass FROM tablea a, tableb b WHERE a.id = b.id,MyClass.class).getResultList
.....
类 MyClass() 字符串用户类型; 字符串用户名; 字符串用户密码;
你能帮我出主意吗?
提前致谢!
【问题讨论】:
我不是 TopLink 专家,但 Hibernate 可以很好地完成上述所有工作,并且(可能除了最后一项)它都是在 JPA 标准内完成的;所以我有理由相信 TopLink 也能做到这一点。你能更具体地描述你的问题吗? 【参考方案1】: 不能,请在您的代码中执行。否则,您需要在您的条件的一侧使用特定于数据库的东西。 可以,为什么不呢。您可以在查询中使用between :fromDate and :toDate
,或者在NamedQuery
中使用> :fromDate
和< :toDate
。问题出在哪里。
可以。和上一个类似,改用=
符号
可以使用@SqlResultSetMapping
。参考this。
【讨论】:
以上是关于关于 EJB 3.0 和 Toplink 框架的一些限制的主要内容,如果未能解决你的问题,请参考以下文章