关于 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 框架的一些限制的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring MVC 3.0 和 @EJB 注释而没有映射名称?

jpa注解

EJB中数据库操作技术(JPA)

我应该使用哪个 EJB 3 持久提供程序?

JPA

JPA