Hi,
ich hoffe ihr könnt mir bei meinem Problem etwas auf die Sprünge helfen
Ich versuche gerade Dokumente zu persistieren. Wobei ein Dokument (doc_id, name) von mehreren Benutzern (user_id, name) gelesen werden kann. Dazu soll noch der Status des Lesens eines Benutzers gesetzt werden können, also z.B am lesen oder gelesen. Bsp. Doc1 -> User1 -> GELESEN, Doc1 -> User2 -> AM_LESEN
Meine bisherige Lösung sieht wie folgt aus:
Wie würdet ihr das Problem modelieren. Würde man diese Entität DocState expliziet einführen oder kann man das auch über eine ManyToMany Beziehung realisieren (hab ich schon probiert, aber mir fällt dann keine Möglichkeit ein den Status abzubilden)?
Vlt. hat jemand eine Lösung oder kann mir einen Tipp geben?!
MFG
ich hoffe ihr könnt mir bei meinem Problem etwas auf die Sprünge helfen

Ich versuche gerade Dokumente zu persistieren. Wobei ein Dokument (doc_id, name) von mehreren Benutzern (user_id, name) gelesen werden kann. Dazu soll noch der Status des Lesens eines Benutzers gesetzt werden können, also z.B am lesen oder gelesen. Bsp. Doc1 -> User1 -> GELESEN, Doc1 -> User2 -> AM_LESEN
Meine bisherige Lösung sieht wie folgt aus:
Code:
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "Documents")
public class Document{
@Id
@GeneratedValue
private int id;
private String name;
public int getID(){
return id;
}
public void setID(int id){
this.id = id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
Code:
import java.io.Serializable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import static javax.persistence.EnumType.STRING;
import javax.persistence.Table;
@Entity
@Table(name = "DocStates")
public class DocState implements Serializable{
public enum State{
PUBLISHED, UNREAD
}
@EmbeddedId
private DocStatePK pk;
@Enumerated(STRING)
private State state;
public DocState(){
}
public DocState(DocStatePK pk, State state){
this.setPk(pk);
this.setState(state);
}
public void setPk(DocStatePK pk){
this.pk = pk;
}
public DocStatePK getPk(){
return pk;
}
public void setState(State state){
this.state = state;
}
public State getState(){
return state;
}
}
Code:
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.Table;
@Entity
@Table(name = "Users")
public class User implements Serializable{
@Id
@GeneratedValue
private int id;
private String name;
public User(){
}
public void setID(int id){
this.id = id;
}
public int getID(){
return id;
}
public void setName(String name){
this.name = name;
}
}
Code:
import java.io.Serializable;
import javax.persistence.Embeddable;
@Embeddable
public class DocStatePK implements Serializable{
private int doc_id;
private int user_id;
public DocStatePK(){
}
public DocStatePK(int doc_id, int user_id){
this.setDoc_id(doc_id);
this.setUser_id(user_id);
}
public void setDoc_id(int doc_id){
this.doc_id = doc_id;
}
public int getDoc_id(){
return doc_id;
}
public void setUser_id(int user_id){
this.user_id = user_id;
}
public int getUser_id(){
return user_id;
}
}
Wie würdet ihr das Problem modelieren. Würde man diese Entität DocState expliziet einführen oder kann man das auch über eine ManyToMany Beziehung realisieren (hab ich schon probiert, aber mir fällt dann keine Möglichkeit ein den Status abzubilden)?
Vlt. hat jemand eine Lösung oder kann mir einen Tipp geben?!
MFG