Hallo,
ich habe folgende Entity unten und speichere Objekte von dieser Entity über Hibernate in die DB.
Momentan schau ich immer zuerst ob schon ein Objekt mit dem gleichen eventnamen und eventtime vorhanden ist und wenn nicht dann speichere ich ein neues Objekt, ansonsten nehme ich das existierende her.
Meine Frage wäre jetzt ob es da nicht eine bessere Möglichkeit gibt, also wenn es schon ein Objekt mit diesem eventname und eventtime gibt, dann dieses verwende.
Ich hab schon gesucht, aber noch nichts vernünftiges gefunden was funktioniert.
Weiß da vielleicht jemand was dazu?
Besten Dank,
lg
ich habe folgende Entity unten und speichere Objekte von dieser Entity über Hibernate in die DB.
Momentan schau ich immer zuerst ob schon ein Objekt mit dem gleichen eventnamen und eventtime vorhanden ist und wenn nicht dann speichere ich ein neues Objekt, ansonsten nehme ich das existierende her.
Meine Frage wäre jetzt ob es da nicht eine bessere Möglichkeit gibt, also wenn es schon ein Objekt mit diesem eventname und eventtime gibt, dann dieses verwende.
Ich hab schon gesucht, aber noch nichts vernünftiges gefunden was funktioniert.
Weiß da vielleicht jemand was dazu?
Besten Dank,
lg
Java:
// does the event already exist into the database
final List<Event> eventList = getEvent(eventname, eventtime);
if(eventList .size() > 0) {
final Event event = eventList.get(0);
getHibernateTemplate().saveOrUpdate(event);
}
Java:
@Entity
@SuppressWarnings("serial")
@Table(name="TEvent")
public class Event implements Serializable {
private Integer pk_event;
private String eventname;
private Timestamp eventtime;
public Event() {}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Integer getPk_event() {
return pk_event;
}
public void setPk_event(final Integer pk_event) {
this.pk_event = pk_event;
}
public String getEventname() {
return eventname;
}
public void setEventname(final String eventname) {
this.eventname = eventname;
}
public Timestamp getEventtime() {
return eventtime;
}
public void setEventtime(final Timestamp eventtime) {
this.eventtime = eventtime;
}
@Override
public boolean equals(Object obj) {
if(obj == null)
return false;
else if(!(obj instanceof Event))
return false;
else if(((Event)obj).eventname.equals(this.eventname) && ((Event)obj).eventtime.equals(this.eventtime))
return true;
return false;
}
@Override
public int hashCode() {
int hash = 7;
hash = 67 * hash + (this.eventname != null ? this.eventname.hashCode() : 0);
hash = 67 * hash + (this.eventtime != null ? this.eventtime.hashCode() : 0);
return hash;
}
}
Zuletzt bearbeitet: