Proszę o pomoc bo nie wiem jak sobie z tym poradzić. Chciałbym żeby dane które zostaną wpisane w pola tekstowe po naciśnięciu przycisku zapisały się w bazie. W tej chwili mogę odczytywać z bazy a jak dodaję do generuje mi się mim jedynie rekord z ID ale bez danych które wpisałem w JSF.
jsf
<h:form>
<h:panelGrid columns="3">
<h:outputLabel value="Name: " for="userName"/>
<h:inputText id="userName" label="userName" required="true" value="#{userData.userName}"/>
<h:message for="userName"/>
<h:outputLabel value="Secend Name: " for="userSName"/>
<h:inputText id="userSName" label="userSName" required="true" value="#{userData.userSName}"/>
<h:message for="userSName"/>
<h:commandButton value="Save" action="#{loginController.addUser()}"/>
</h:panelGrid>
</h:form>
Entiry
@Entity
@Named
@RequestScoped
public class UserData implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long iduser;
private String userName;
private String userSName;
public UserData() {
}
public Long getUserId() {
return iduser;
}
public void setUserId(Long userId) {
this.iduser = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserSName() {
return userSName;
}
public void setUserSName(String userSName) {
this.userSName = userSName;
}
}
DAO
@Named
@RequestScoped
@TransactionManagement
public class UserDao {
@PersistenceContext(name = "MySqlDS")
EntityManager em;
public UserData addUser(UserData userData) {
em.persist(userData);
return userData;
}
public List<UserData> findAll(){
return em.createQuery("select u from UserData as u ", UserData.class).getResultList();
}
}
Controller
@Path("/log")
@Named
@RequestScoped
public class LoginController {
private static Logger logger = Logger.getLogger(LoginController.class);
@Inject
UserDao userDao;
UserData user;
@POST
@Transactional
@Path("/post")
@Consumes("application/json")
public String addUser(){
user = new UserData();
userDao.addUser(user);
return "Dodano";
}
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public List<UserData> getUser(){
List<UserData> list = userDao.findAll();
return list;
}
}