java - 使用@NamedQuery时如何显示日期和字符串

标签 java hibernate jpa jpa-2.0

我的实体中有以下@NamedQuery:

@NamedQuery(name = "Customer.findAll", query = "SELECT c FROM Customer c")

我在 DAOImpl 类中使用上述内容作为

TypedQuery<Customer> q =  entityManager.createNamedQuery(
    "Customer.findAll", Customer.class);

当我在应用程序中显示日期字段时,所有日期值都显示为

2013-07-14 00:00:00.0、2013-07-28 00:00:00.0 等和字符串字段显示为

test.entity.Employee@750d24b2

如何格式化日期并显示数据库中存储的字符串数据?

编辑 1

<p:column>
    <f:facet name="header">
        <h:outputText value="Employee #" />
    </f:facet>
    <h:outputText value="#{req.empNumber}" />
</p:column>

在实体empNumber中为

它被声明为

private Employee empNumber;

最佳答案

如果您接收 test.entity.Employee@750d24b2,则您没有访问 JSF 上的 String,而是通过 JSF EL 访问类。

您应该访问 Employee 类上的字段,例如:

<h:outputText value="#{req.employee.empNumber}" />

这假设 req 属性包含 employee 的 get/set 方法,并且 employee 包含 empNumber< 的 get/set 方法。使用这些访问器后,JSF EL 应该显示 empNumber 的值。

为了显示日期,我建议使用 JSF 标签。

<h:outputText value="#{req.someDate}" >
              <f:convertDateTime pattern="dd.MM.yyyy HH:mm" />
 </h:outputText>

Documentation

关于java - 使用@NamedQuery时如何显示日期和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885758/

相关文章:

java - Java程序中递归方法导致堆栈溢出

java - 什么是 JVM 中的动态链接失败?

hibernate - GORM,获取org.hibernate.HibernateException:在afterLoad()中打开事务时找到同一集合的两个表示形式

java - JPA 持久类从不同的 JAR 扩展另一个类

java - 在 MySQL 中使用数字创建序列日期

java - 如何限制JPA和Informix中的查询?

java - spring + jpa + hibernate,列出表中的所有行

java - HTTP 状态 500 - org.eclipse.persistence.exceptions.EntityManagerSetupException

java - 即使没有更新,JDBCexecuteBatch() 是否应该返回一个具有原始批处理长度的数组?

java - 排除mapstruct中的特定字段