I
Infohm
Gast
Hallo liebe Java-Community,
Ich arbeite im Team mit ein paar Kommilitonen an einem Projekt mit Java EE 6, Glassfish 3 und MySql 5.5. Meine Zuständigkeit innerhalb des Teams beschränkt sich auf die Datenbank, welche inzwischen auch größtenteils funktionsfähig ist. Allerdings bereitet mit eine Entity Kopfzerbrechen.
Diese Entity lässt sich aus irgendeinem Grund nicht in die Datenbank eintragen. Ich poste mal eben noch die create Funktion aus der EAO.
Bei Aufruf der createMenu-Methode. Wird die Entity korrekt befüllt und ihr wird eine ID zugewiesen. (Beides hab ich über die Logfile des Servers getestet) ALLERDINGS landet kein Eintrag in der Datenbank, obwohl ich hier eigentlich nichts anderes mache als bei allen anderen Entities bei denen es funktioniert. Es landet auch keine Exception im Logfile.
Bereits probiert hab ich:
- Date auszukommentieren und das menu nur anhand einer source zu erstellen.
- Source aszukommentieren und das menu nur anhand eines dates zu erstellen.
- Alle nullables auf true zu stellen (natürlich sowohl in der Entity als auch in der DB)
Wenn jemand eine Idee hat was ich falsch mache (gerne auch abgesehen von meinem "Persist-Problem") würd ich mich tierisch freuen
LG
Infohm
Ich arbeite im Team mit ein paar Kommilitonen an einem Projekt mit Java EE 6, Glassfish 3 und MySql 5.5. Meine Zuständigkeit innerhalb des Teams beschränkt sich auf die Datenbank, welche inzwischen auch größtenteils funktionsfähig ist. Allerdings bereitet mit eine Entity Kopfzerbrechen.
Java:
@Entity
@Table(name="menu")
public class MenuEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "menuId", unique = true, nullable = false)
private long id;
@Column(name="day", nullable = false)
@Temporal(TemporalType.DATE)
private Date day;
@ManyToOne (fetch=FetchType.LAZY)
@JoinColumn(name="sourceId", nullable = false)
private SourceEntity source;
@OneToMany
@JoinColumn(name="menu", referencedColumnName="menuId", nullable = true)
private List<MealEntity> meal;
//... (Getter,Setter, equal Override)
Diese Entity lässt sich aus irgendeinem Grund nicht in die Datenbank eintragen. Ich poste mal eben noch die create Funktion aus der EAO.
Java:
@PersistenceContext(unitName = "is")
private EntityManager em;
private final static Logger LOGGER = Logger.getLogger(MenuEAOBean.class .getName());
@EJB
private MealEAOBean mealEAO;
@EJB
private SourceEAOBean sourceEAO;
public long createMenu(Date day, long sourceId){
try{
LOGGER.info("Attempting to create Menu:\nDay: "+day.toString()+"\nSource: "+sourceId);
SourceEntity source = sourceEAO.getSourceById(sourceId);
if(source == null){
LOGGER.severe("Creating Menu FAILED. Couldn't find related source "+sourceId);
return -1;
}
if(checkMenuExists(day, source)){
LOGGER.severe("Creating menu FAILED. There's already a menu existing with:\nDay: "+day.toString()+" AND Source "+source.getId());
return -1;
}
MenuEntity m = new MenuEntity();
m.setDay(day);
m.setSource(source);
em.persist(m);
em.flush();
LOGGER.info("Menu "+m.getId()+" SUCCESSFULLY created");
return m.getId();
}catch(Exception e){
LOGGER.severe(e.toString()+" function createMenu().");
return -1;
}
}
Bei Aufruf der createMenu-Methode. Wird die Entity korrekt befüllt und ihr wird eine ID zugewiesen. (Beides hab ich über die Logfile des Servers getestet) ALLERDINGS landet kein Eintrag in der Datenbank, obwohl ich hier eigentlich nichts anderes mache als bei allen anderen Entities bei denen es funktioniert. Es landet auch keine Exception im Logfile.
Bereits probiert hab ich:
- Date auszukommentieren und das menu nur anhand einer source zu erstellen.
- Source aszukommentieren und das menu nur anhand eines dates zu erstellen.
- Alle nullables auf true zu stellen (natürlich sowohl in der Entity als auch in der DB)
Wenn jemand eine Idee hat was ich falsch mache (gerne auch abgesehen von meinem "Persist-Problem") würd ich mich tierisch freuen
LG
Infohm