2012-05-03 10 views
0

私はJava EEの初心者です。データベース内のユーザーエンティティを永続化するアプリケーションを作成しようとしています。私は、次のコードを持っている:データベースのエンティティを永続化できませんJava EE

ユーザエンティティ

@Entity 
    public class User implements Serializable { 
     private static final long serialVersionUID = 1L; 

     @Id 
     @GeneratedValue(strategy=GenerationType.AUTO) 
     private int id; 

     private String department; 

     @Email 
     private String email; 

     @Column(name="`first name`") 
     private String firstName; 

     @Column(name="`last name`") 
     private String lastName; 

     private String password; 

     //bi-directional many-to-one association to Unit 
     @OneToMany(mappedBy="user") 
     private Set<Unit> units; 

    public User() { 
    } 

    public int getId() { 
     return this.id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getDepartment() { 
     return this.department; 
    } 

    public void setDepartment(String department) { 
     this.department = department; 
    } 

    public String getEmail() { 
     return this.email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public String getFirstName() { 
     return this.firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getlastNameame() { 
     return this.lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 

    public String getPassword() { 
     return this.password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

    public Set<Unit> getUnits() { 
     return this.units; 
    } 

    public void setUnits(Set<Unit> units) { 
     this.units = units; 
    } 

} 

ユーザーステートレスセッションBeanを

@Stateless 
public class userEJB { 

    @PersistenceContext 
    private EntityManager em; 
    /** 
    * Default constructor. 
    */ 
    public userEJB() { 
     // TODO Auto-generated constructor stub 
    } 

    public void createUser(User user) 
    { 
     em.persist(user); 
    } 

} 

ユーザーマネージドBean(唯一の方法が実装されて作成)

public class UserMBean { 

    @EJB 
    userEJB userSessionBean; 

    private User user; 



    public UserMBean() { 
     this.user = new User(); 
    } 

    public void save() 
    { 
     userSessionBean.createUser(user); 
    } 

} 

signUp.xhtml

<h:form> 
      <h:panelGrid columns = "2"> 
       <h:outputLabel for="firstName" value="First Name"/> 
       <h:inputText id="firstName" value="#{userMBean.user.firstName}" required = "true"/> 
       <h:outputLabel for="lastName" value="Last Name"/> 
       <h:inputText id="lastName" value="#{userMBean.user.lastName}" required = "true" /> 
       <h:outputLabel for="department" value="Department"/> 
       <h:inputText id="department" value="#{userMBean.user.department}" required = "true"/> 
       <h:outputLabel for ="email" value="Email"/> 
       <h:inputText id="email" value="#{userMBean.user.email}" required = "true"/> 
       <h:outputLabel for="password" value="Password"/> 
       <h:inputText id="password" value="#{userMBean.user.password}" required = "true"/> 

      </h:panelGrid> 
      <h:commandButton action="#{userMBean.save}" value="Submit" /> 
     </h:form> 

[送信元]は正しく表示されていますが、[送信]ボタンをクリックすると何も表示されません。サーバーエラーはありません。それは単に信号を与えません。コードに間違いがあると助けてくれますか?

ありがとうございました

+1

デバッガを使用して、ボタンをクリックしたときの状況を知ることができます。少なくとも、ロギングステートメントを追加して、何が実行されているかを確認してください。 –

+0

マネージドBeanは認識されていますか? JSFまたはCDIの注釈を使用しましたか? –

答えて

2

あなたは一度にあまりにも多くのことが起こっています。

[送信]ボタンをクリックしても何も起こりません。あなたのパーシスタンス層が適切に動作しているかどうかを検証するUIが必要なのはなぜですか?パーシスタンスコードを実行するだけで何もしない単体テストを書く。あなたが問題を整理するまで、何が行われたかを分けてください。

書かれているように、永続性が悪いのか、セッションBeanか、UIか分かりません。

関連する問題