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

Java 使用@NamedQuery时如何显示日期和字符串,java,hibernate,jpa,jpa-2.0,Java,Hibernate,Jpa,Jpa 2.0,我的实体中有以下@NamedQuery: 我在DAOImpl类中使用上述 TypedQuery<Customer> q = entityManager.createNamedQuery( "Customer.findAll", Customer.class); 如何格式化日期和显示存储在数据库中的字符串数据 编辑1 <p:column> <f:facet name="header"> <h:outputText val

我的
实体中有以下
@NamedQuery

我在
DAOImpl
类中使用上述

TypedQuery<Customer> q =  entityManager.createNamedQuery(
    "Customer.findAll", Customer.class);
如何格式化日期和显示存储在数据库中的字符串数据

编辑1

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

如果您收到
test.entity。Employee@750d24b2
您没有在JSF上访问
字符串,而是通过JSF EL访问类

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

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

如果您收到
test.entity。Employee@750d24b2
您没有在JSF上访问
字符串,而是通过JSF EL访问类

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

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

在JSF中将日期显示为格式化字符串与@NamedQuery无关,也与您选择从数据库获取该日期的方式无关。无论如何,要显示格式化日期

<h:outputText value="#{bean.date}" >
    <f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>

替换为实际值和所需模式


对于Employee,当您使用对象(而不是字符串)作为h:outputText的值时,将调用该对象的toString()方法。这就是为什么你看到了你所看到的。您应该使用employee的属性,比如#{req.employee.empNumber}

在JSF中将日期显示为格式化字符串与@NamedQuery无关,或者您选择如何从数据库获取该日期。无论如何,要显示格式化日期

<h:outputText value="#{bean.date}" >
    <f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>

替换为实际值和所需模式



对于Employee,当您使用对象(而不是字符串)作为h:outputText的值时,将调用该对象的toString()方法。这就是为什么你看到了你所看到的。您应该使用雇员的属性,如#{req.employee.empNumber}

发布一个显示字符串的示例,我理解日期,但字符串非常奇怪。@KevinBowersox,因为映射我声明为
private employee empNumber@OneToOne
@ManyToOne
注释以创建关联?员工就是员工。这不是一根绳子。因此,当您显示它时,它的
toString()
方法被调用。@KevinBowersox是的,我曾注释为
@manytone
,并从
员工
@OneToMany
发布了一个显示字符串的示例,我理解日期,但字符串非常奇怪。@KevinBowersox,因为映射我声明为
private empNumber@OneToOne
@ManyToOne
注释以创建关联?员工就是员工。这不是一根绳子。所以当你显示它时,它的
toString()
方法被调用。@KevinBowersox是的,我确实注释为
@ManyToOne
,并且来自
员工
@OneToMany
凯文我有
私人员工编号
在managedbean和Employee类中,我有employeeNo的getter和setter,但是当我运行我的应用程序时,我得到的是
{req.Employee.employeeNo}”:类“test.net.entity.Customer”没有属性“Employee”。
在Customer中需要一个
public Employee getEmployee()
方法。这就是“属性”“意思是。Kevin在回答中告诉它:“这假设req属性包含员工的get/set方法。”
req
是否属于
Customer
类型?如果是这样,
Customer
必须有一个
Employee
字段(需要建立关联,考虑
@OneToMany
@manytone
等)。
Customer
类还必须为
Employee
@jbnize提供get/set方法。我知道这不是火箭科学,但我的评论越与你的一致,我就越觉得自己正在发展成为一名更好的程序员。@KevinBowersox非常感谢你的宝贵评论,这是我的错,我对员工和员工编号感到困惑。谢谢。凯文,我有
私人雇员编号
在managedbean和Employee类中,我有employeeNo的getter和setter,但是当我运行我的应用程序时,我得到的是
{req.Employee.employeeNo}”:类“test.net.entity.Customer”没有属性“Employee”。
在Customer中需要一个
public Employee getEmployee()
方法。这就是“属性”“意思是。Kevin在回答中告诉它:“这假设req属性包含员工的get/set方法。”
req
是否属于
Customer
类型?如果是这样,
Customer
必须有一个
Employee
字段(需要建立关联,考虑
@OneToMany
@manytone
等)。
Customer
类还必须为
Employee
@jbnize提供get/set方法。我知道这不是火箭科学,但我的评论越与你的一致,我就越觉得自己正在发展成为一名更好的程序员。@KevinBowersox非常感谢你的宝贵评论,这是我的错,我对员工和员工编号感到困惑。谢谢。
<h:outputText value="#{req.someDate}" >
              <f:convertDateTime pattern="dd.MM.yyyy HH:mm" />
 </h:outputText>
<h:outputText value="#{bean.date}" >
    <f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>