在jpa中从数据库中填充数据表
Fill datatable from database in jpa
public List<MemberEntity> getMember() {
EntityManagerFactory entityManagerFactory = Persistence
.createEntityManagerFactory("PrimeEclipseLink");
EntityManager entityManager = entityManagerFactory
.createEntityManager();
Query query = entityManager
.createNativeQuery("Select * FROM member");
memberEntities = (List<MemberEntity>)query.getResultList();
return memberEntities;
}
我想从 database.but 填充我的数据,它不起作用请帮助我:) 当我单击列表按钮时 table 像 picture.by 那样填充,我的数据库包含 3 records.thats为什么3个零。
xhtml 页面在这里。
<h:form id="member">
<p:dataTable var="members" value="#{mainScreen.memberEntities}">
<p:column headerText="name">
<h:outputText value="#{memberEntity.name}" />
</p:column>
<p:column headerText="surname">
<h:outputText value="#{memberEntity.surname}" />
</p:column>
<p:column headerText="fathername">
<h:outputText value="#{memberEntity.fathername}" />
</p:column>
<p:column headerText="age">
<h:outputText value="#{memberEntity.age}" />
</p:column>
<p:column headerText="email">
<h:outputText value="#{memberEntity.email}" />
</p:column>
<p:column headerText="username">
<h:outputText value="#{memberEntity.username}" />
</p:column>
<p:column headerText="password">
<h:outputText value="#{memberEntity.password}" />
</p:column>
</p:dataTable>
</h:form>
` @ManagedBean
@Entity
@Table(name = "member")
public class MemberEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int memberid;
private int age;
private String name;
private String surname;
private String fathername;
private String email;
private String username;
private String password;
public MemberEntity(int memberid, int age, String name, String surname,
String fathername, String email, String username, String password) {
super();
this.memberid = memberid;
this.age = age;
this.name = name;
this.surname = surname;
this.fathername = fathername;
this.email = email;
this.username = username;
this.password = password;
}
public MemberEntity() {
super();
// TODO Auto-generated constructor stub
}
public int getMemberid() {
return memberid;
}
public void setMemberid(int memberid) {
this.memberid = memberid;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getFathername() {
return fathername;
}
public void setFathername(String fathername) {
this.fathername = fathername;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Member [memberid=" + memberid + ",name=" + name + ",surname="
+ surname + ",age=" + age + ",email=" + email + ",fathername="
+ fathername + ",username=" + username + ",password="
+ password + "]";
}
}
在您的 p:dataTable
中,var
属性被命名为 membres
,而在 p:column
值中您使用的是 memberEntity
,因此您必须更改members
.
发件人:
<p:column headerText="name">
<h:outputText value="#{memberEntity.name}" />
</p:column>
收件人:
<p:column headerText="name">
<h:outputText value="#{members.name}" />
</p:column>
我找到了解决方案。在 getMember() 方法中而不是 createNativeQuery("Select * FROM member") true---> createNativeQuery("Select * FROM members,MemberEntity.class)
public List<MemberEntity> getMember() {
EntityManagerFactory entityManagerFactory = Persistence
.createEntityManagerFactory("PrimeEclipseLink");
EntityManager entityManager = entityManagerFactory
.createEntityManager();
Query query = entityManager
.createNativeQuery("Select * FROM member");
memberEntities = (List<MemberEntity>)query.getResultList();
return memberEntities;
}
我想从 database.but 填充我的数据,它不起作用请帮助我:) 当我单击列表按钮时 table 像 picture.by 那样填充,我的数据库包含 3 records.thats为什么3个零。
xhtml 页面在这里。
<h:form id="member">
<p:dataTable var="members" value="#{mainScreen.memberEntities}">
<p:column headerText="name">
<h:outputText value="#{memberEntity.name}" />
</p:column>
<p:column headerText="surname">
<h:outputText value="#{memberEntity.surname}" />
</p:column>
<p:column headerText="fathername">
<h:outputText value="#{memberEntity.fathername}" />
</p:column>
<p:column headerText="age">
<h:outputText value="#{memberEntity.age}" />
</p:column>
<p:column headerText="email">
<h:outputText value="#{memberEntity.email}" />
</p:column>
<p:column headerText="username">
<h:outputText value="#{memberEntity.username}" />
</p:column>
<p:column headerText="password">
<h:outputText value="#{memberEntity.password}" />
</p:column>
</p:dataTable>
</h:form>
` @ManagedBean
@Entity
@Table(name = "member")
public class MemberEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int memberid;
private int age;
private String name;
private String surname;
private String fathername;
private String email;
private String username;
private String password;
public MemberEntity(int memberid, int age, String name, String surname,
String fathername, String email, String username, String password) {
super();
this.memberid = memberid;
this.age = age;
this.name = name;
this.surname = surname;
this.fathername = fathername;
this.email = email;
this.username = username;
this.password = password;
}
public MemberEntity() {
super();
// TODO Auto-generated constructor stub
}
public int getMemberid() {
return memberid;
}
public void setMemberid(int memberid) {
this.memberid = memberid;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getFathername() {
return fathername;
}
public void setFathername(String fathername) {
this.fathername = fathername;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Member [memberid=" + memberid + ",name=" + name + ",surname="
+ surname + ",age=" + age + ",email=" + email + ",fathername="
+ fathername + ",username=" + username + ",password="
+ password + "]";
}
}
在您的 p:dataTable
中,var
属性被命名为 membres
,而在 p:column
值中您使用的是 memberEntity
,因此您必须更改members
.
发件人:
<p:column headerText="name">
<h:outputText value="#{memberEntity.name}" />
</p:column>
收件人:
<p:column headerText="name">
<h:outputText value="#{members.name}" />
</p:column>
我找到了解决方案。在 getMember() 方法中而不是 createNativeQuery("Select * FROM member") true---> createNativeQuery("Select * FROM members,MemberEntity.class)