2016-04-09 5 views
1

ハイバネート出力は次のとおりです。バネデータを使用して結合列にデータが残らない

休止:(???????、、、、、、)usernew挿入(ACTIVE、EMAIL、FIRST_NAME、CGUID、LAST_NAME、MIDDLE_NAME、PIN)値

休止:(usernew挿入

Hibernate:eventnewに挿入する(ACTIVE、ADDRESS、DESCRIPTION、END_TS、HOST_PHONE_NUMBER、ACTIVE、EMAIL、FIRST_NAME、CGUID、LAST_NAME、MIDDLE_NAME、PIN) IMAGE、緯度、経度、NAME、PLACE_ID、START_TS)値(?、?、?、?、?、?、?、?、?、?、?)

User user = new User(); 
user.setActive(true); 
user.setFirstName("test"); 
user.setLastName("test"); 
user.setPin("3333"); 
user.setEmail("[email protected]"); 
userRepositoryNew.save(user); 

User user1 = new User(); 
user1.setActive(true); 
user1.setFirstName("test"); 
user1.setLastName("test"); 
user1.setPin("3333"); 
user1.setEmail("[email protected]"); 
userRepositoryNew.save(user1); 

Event event = new Event(); 
event.setName("event"); 
event.setDescription("testing event"); 
event.setHostPhoneNumber("4455-33-990"); 
event.setLongitude("dddd"); 

EventUser eventUser = new EventUser(); 
eventUser.setUser(user); 
eventUser.setEvent(event); 

EventUser eventUser1 = new EventUser(); 
eventUser.setUser(user1); 
eventUser.setEvent(event); 

event.getEventUsers().add(eventUser); 
event.getEventUsers().add(eventUser1); 

eventRepositoryNew.save(event); 

以下はコードですが、なぜ結合テーブルにデータが入力されないのか分かりません。

package com.hive.domain; 

    import static javax.persistence.GenerationType.IDENTITY; 

    import java.util.Date; 
    import java.util.HashSet; 
    import java.util.Set; 

    import javax.persistence.Column; 
    import javax.persistence.Entity; 
    import javax.persistence.FetchType; 
    import javax.persistence.GeneratedValue; 
    import javax.persistence.Id; 
    import javax.persistence.OneToMany; 
    import javax.persistence.Table; 
    import javax.persistence.Transient; 

    import org.codehaus.jackson.map.annotate.JsonDeserialize; 
    import org.codehaus.jackson.map.annotate.JsonSerialize; 

    import com.hive.json.marshaller.DateUTCDeserializer; 
    import com.hive.json.marshaller.DateUTCSerializer; 
    import com.hive.json.marshaller.ImageDeserializer; 
    import com.hive.json.marshaller.ImageSerializer; 

    @Entity 
    @Table(name = "eventnew") 
    public class Event implements java.io.Serializable { 

     private Integer id; 
     private String name; 
     private String description; 
     private String address; 
     private String latitude; 
     private String longitude; 

     @JsonSerialize(using = ImageSerializer.class) 
     @JsonDeserialize(using = ImageDeserializer.class) 
     private byte[] image; 
     private String placeId; 

     @JsonSerialize(using = DateUTCSerializer.class) 
     @JsonDeserialize(using = DateUTCDeserializer.class) 
     private Date startAt; 

     @JsonSerialize(using = DateUTCSerializer.class) 
     @JsonDeserialize(using = DateUTCDeserializer.class) 
     private Date endAt; 

     private boolean active; 
     private String hostPhoneNumber; 

     private Set<User> participants = new HashSet<User>(0); 
     private Set<EventUser> eventUsers = new HashSet<EventUser>(0); 

     public Event() { 
     } 

     @Id 
     @GeneratedValue(strategy = IDENTITY) 
     @Column(name = "ID", unique = true, nullable = false) 
     public Integer getId() { 
      return this.id; 
     } 

     public void setId(Integer id) { 
      this.id = id; 
     } 

     @Column(name = "NAME", nullable = false, length = 10) 
     public String getName() { 
      return this.name; 
     } 

     public void setName(String name) { 
      this.name = name; 
     } 

     @Column(name = "DESCRIPTION") 
     public String getDescription() { 
      return description; 
     } 

     public void setDescription(String description) { 
      this.description = description; 
     } 

     @Column(name = "ADDRESS") 
     public String getAddress() { 
      return address; 
     } 

     public void setAddress(String address) { 
      this.address = address; 
     } 

     @Column(name = "LATITUDE") 
     public String getLatitude() { 
      return latitude; 
     } 

     public void setLatitude(String latitude) { 
      this.latitude = latitude; 
     } 

     @Column(name = "LONGITUDE") 
     public String getLongitude() { 
      return longitude; 
     } 

     public void setLongitude(String longitude) { 
      this.longitude = longitude; 
     } 

     @Column(name = "START_TS") 
     public Date getStartAt() { 
      return startAt; 
     } 

     public void setStartAt(Date startAt) { 
      this.startAt = startAt; 
     } 

     @Column(name = "END_TS") 
     public Date getEndAt() { 
      return endAt; 
     } 

     public void setEndAt(Date endAt) { 
      this.endAt = endAt; 
     } 

     @Column(name = "IMAGE") 
     public byte[] getImage() { 
      return image; 
     } 

     public void setImage(byte[] image) { 
      this.image = image; 
     } 

     @Column(name = "PLACE_ID") 
     public String getPlaceId() { 
      return placeId; 
     } 

     public void setPlaceId(String placeId) { 
      this.placeId = placeId; 
     } 

     @Column(name = "ACTIVE") 
     public boolean isActive() { 
      return active; 
     } 

     public void setActive(boolean active) { 
      this.active = active; 
     } 

     @Column(name = "HOST_PHONE_NUMBER") 
     public String getHostPhoneNumber() { 
      return hostPhoneNumber; 
     } 

     public void setHostPhoneNumber(String hostPhoneNumber) { 
      this.hostPhoneNumber = hostPhoneNumber; 
     } 

     @Transient 
     public Set<User> getParticipants() { 
      return participants; 
     } 

     public void setParticipants(Set<User> participants) { 
      this.participants = participants; 
     } 

     @OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.event") 
     public Set<EventUser> getEventUsers() { 
      return this.eventUsers; 
     } 

     public void setEventUsers(Set<EventUser> eventUsers) { 
      this.eventUsers = eventUsers; 
     } 

    } 

    package com.hive.domain; 

    import static javax.persistence.GenerationType.IDENTITY; 

    import java.util.HashSet; 
    import java.util.Set; 

    import javax.persistence.CascadeType; 
    import javax.persistence.Column; 
    import javax.persistence.Entity; 
    import javax.persistence.FetchType; 
    import javax.persistence.GeneratedValue; 
    import javax.persistence.Id; 
    import javax.persistence.OneToMany; 
    import javax.persistence.Table; 
    import javax.persistence.UniqueConstraint; 

    @Entity 
    @Table(name = "usernew") 
    public class User implements java.io.Serializable { 

     private String guid; 
     private String firstName; 
     private String middleName; 
     private String lastName; 
     private Integer phoneNumber; 
     private String email; 
     private String pin; 
     private boolean active; 

     private Set<EventUser> eventUsers = new HashSet<EventUser>(0); 

     public User() { 
     } 

     @Column(name = "CGUID") 
     public String getGuid() { 
      return guid; 
     } 

     public void setGuid(String guid) { 
      this.guid = guid; 
     } 

     @Id 
     @GeneratedValue(strategy = IDENTITY) 
     @Column(name = "PHONE_NUMBER", unique = true, nullable = false) 
     public Integer getPhoneNumber() { 
      return phoneNumber; 
     } 

     public void setPhoneNumber(Integer phoneNumber) { 
      this.phoneNumber = phoneNumber; 
     } 

     @Column(name = "FIRST_NAME") 
     public String getFirstName() { 
      return firstName; 
     } 

     public void setFirstName(String firstName) { 
      this.firstName = firstName; 
     } 

     @Column(name = "LAST_NAME") 
     public String getLastName() { 
      return lastName; 
     } 

     public void setLastName(String lastName) { 
      this.lastName = lastName; 
     } 

     @Column(name = "MIDDLE_NAME") 
     public String getMiddleName() { 
      return middleName; 
     } 

     public void setMiddleName(String middleName) { 
      this.middleName = middleName; 
     } 

     @Column(name = "EMAIL") 
     public String getEmail() { 
      return email; 
     } 

     public void setEmail(String email) { 
      this.email = email; 
     } 

     @Column(name = "PIN") 
     public String getPin() { 
      return pin; 
     } 

     public void setPin(String pin) { 
      this.pin = pin; 
     } 

     @Column(name = "ACTIVE") 
     public boolean isActive() { 
      return active; 
     } 

     public void setActive(boolean active) { 
      this.active = active; 
     } 

     @OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.user", cascade = CascadeType.ALL) 
     public Set<EventUser> getEventUsers() { 
      return this.eventUsers; 
     } 

     public void setEventUsers(Set<EventUser> eventUsers) { 
      this.eventUsers = eventUsers; 
     } 

    } 


    package com.hive.domain; 

    import javax.persistence.AssociationOverride; 
    import javax.persistence.AssociationOverrides; 
    import javax.persistence.Column; 
    import javax.persistence.EmbeddedId; 
    import javax.persistence.Entity; 
    import javax.persistence.JoinColumn; 
    import javax.persistence.Table; 
    import javax.persistence.Transient; 

    @Entity 
    @Table(name = "eventusernew", catalog = "hive") 
    @AssociationOverrides({ @AssociationOverride(name = "pk.user", joinColumns = @JoinColumn(name = "USER_ID")), 
      @AssociationOverride(name = "pk.event", joinColumns = @JoinColumn(name = "EVENT_ID")) }) 
    public class EventUser implements java.io.Serializable { 

     private EventUserId pk = new EventUserId(); 
    // private String state; 
    // private String comment; 
    // private String displayName; 

     public EventUser() { 
     } 

    // @Column(name = "STATE") 
    // public String getState() { 
    //  return state; 
    // } 
    // 
    // @Column(name = "DISPLAY_NAME") 
    // public String getDisplayName() { 
    //  return displayName; 
    // } 
    // 
    // public void setDisplayName(String displayName) { 
    //  this.displayName = displayName; 
    // } 
    // 
    // public void setState(String state) { 
    //  this.state = state; 
    // } 
    // 
    // @Column(name = "COMMENT") 
    // public String getComment() { 
    //  return comment; 
    // } 
    // 
    // public void setComment(String comment) { 
    //  this.comment = comment; 
    // } 

     @EmbeddedId 
     public EventUserId getPk() { 
      return pk; 
     } 

     public void setPk(EventUserId pk) { 
      this.pk = pk; 
     } 

     @Transient 
     public User getUser() { 
      return getPk().getUser(); 
     } 

     public void setUser(User stock) { 
      getPk().setUser(stock); 
     } 

     @Transient 
     public Event getEvent() { 
      return getPk().getEvent(); 
     } 

     public void setEvent(Event category) { 
      getPk().setEvent(category); 
     } 

     public boolean equals(Object o) { 
      if (this == o) 
       return true; 
      if (o == null || getClass() != o.getClass()) 
       return false; 

      EventUser that = (EventUser) o; 

      if (getPk() != null ? !getPk().equals(that.getPk()) : that.getPk() != null) 
       return false; 

      return true; 
     } 

     public int hashCode() { 
      return (getPk() != null ? getPk().hashCode() : 0); 
     } 
    } 


    package com.hive.domain; 

    import javax.persistence.Embeddable; 
    import javax.persistence.ManyToOne; 

    @Embeddable 
    public class EventUserId implements java.io.Serializable { 

     private User user; 
     private Event event; 

     @ManyToOne 
     public User getUser() { 
      return user; 
     } 

     public void setUser(User stock) { 
      this.user = stock; 
     } 

     @ManyToOne 
     public Event getEvent() { 
      return event; 
     } 

     public void setEvent(Event category) { 
      this.event = category; 
     } 

     public boolean equals(Object o) { 
      if (this == o) return true; 
      if (o == null || getClass() != o.getClass()) return false; 

      EventUserId that = (EventUserId) o; 

      if (user != null ? !user.equals(that.user) : that.user != null) return false; 
      if (event != null ? !event.equals(that.event) : that.event != null) 
       return false; 

      return true; 
     } 

     public int hashCode() { 
      int result; 
      result = (user != null ? user.hashCode() : 0); 
      result = 31 * result + (event != null ? event.hashCode() : 0); 
      return result; 
     } 

    } 

答えて

1

保存をカスケードする必要があります。 Eventエンティティで、一対多を次のように変更します。

@OneToMany(mappedBy="pk.event", cascade=CascadeType.ALL) 
+0

yup、同じことを考え出しました! – doublevision

関連する問題