Hi,
ich fange gerade an, mit JEE zu arbeiten und orierntiere mich an einem Beispiel, das ich gefunden habe.
Ich habe ein kleines Formular angelegt, um Bandnamen zu erfassen und das ganze mit JSF an eine Bean gekoppelt. Der Code:
home.xhtml
ArtistBean.java
ArtistDao.java
Artist.java
Wenn ich nun den Namen eintrage und auf den Submit Button drücke, bekomme ich die Meldung, dass ein Constraint verletzt ist. Hebe ich die Constraints (@NotNull und @NotEmpty) vom Bandnamen auf, schreibt er mir <null> Werte in die Datenbank. Ich dachte eigentlich, ich hätte mich am Beispiel orientiert, aber irgendwie mag er das nicht. Findet jemand den Fehler? Ich probiere jetzt seit locker zwei Stunden daran rum...
Gruß,
Tim
ich fange gerade an, mit JEE zu arbeiten und orierntiere mich an einem Beispiel, das ich gefunden habe.
Ich habe ein kleines Formular angelegt, um Bandnamen zu erfassen und das ganze mit JSF an eine Bean gekoppelt. Der Code:
home.xhtml
Java:
<h:form id="artistEdit">
<h:inputText value="#{artistBean.artist.name}" id="name"/>
<h:message for="name" styleClass="errorMessage"/>
<br />
<h:commandButton action="#{artistBean.save}" value="Submit" />
</h:form>
ArtistBean.java
Java:
@Named("artistBean")
@RequestScoped
public class ArtistBean {
@Inject
private ArtistDao artistDao;
private Artist artist = new Artist();
public void save() {
artistDao.persist(artist);
artist = new Artist();
}
public Artist getArtist() {
return artist;
}
public void setArtist(Artist artist) {
this.artist = artist;
}
}
ArtistDao.java
Java:
@Stateless
public class ArtistDao {
@Inject
@DataRepository
private EntityManager entityManager;
public void persist(Artist artist) {
entityManager.persist(artist);
}
@SuppressWarnings("unchecked")
public List<Artist> getAll() {
return entityManager.createQuery("SELECT a FROM Artist a").getResultList();
}
public Artist getArtist(int id) {
Query query = entityManager.createQuery("SELECT a FROM Artist a WHERE id = ?");
query.setParameter(0, id);
return (Artist) query.getSingleResult();
}
}
Artist.java
Java:
@Entity
public class Artist {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column
@NotNull
@NotEmpty
private String name;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Wenn ich nun den Namen eintrage und auf den Submit Button drücke, bekomme ich die Meldung, dass ein Constraint verletzt ist. Hebe ich die Constraints (@NotNull und @NotEmpty) vom Bandnamen auf, schreibt er mir <null> Werte in die Datenbank. Ich dachte eigentlich, ich hätte mich am Beispiel orientiert, aber irgendwie mag er das nicht. Findet jemand den Fehler? Ich probiere jetzt seit locker zwei Stunden daran rum...
Gruß,
Tim