gpt4 book ai didi

java - 使用 spring-data 数据未持久保存在连接列中

转载 作者:行者123 更新时间:2023-11-30 07:28:19 24 4
gpt4 key购买 nike

hibernate 输出如下。

Hibernate:插入 usernew (ACTIVE、EMAIL、FIRST_NAME、CGUID、LAST_NAME、MIDDLE_NAME、PIN) 值 (?, ?, ?, ?, ?, ?, ?)

Hibernate:插入 usernew (ACTIVE、EMAIL、FIRST_NAME、CGUID、LAST_NAME、MIDDLE_NAME、PIN) 值 (?, ?, ?, ?, ?, ?, ?)

hibernate :在 eventnew (ACTIVE、ADDRESS、DESCRIPTION、END_TS、HOST_PHONE_NUMBER、IMAGE、LATITUDE、LONGITUDE、NAME、PLACE_ID、START_TS) 中插入值 (?, ?,?, ?, ?, ?, ?, ?, ? , ?, ?)

User user = new User();
user.setActive(true);
user.setFirstName("test");
user.setLastName("test");
user.setPin("3333");
user.setEmail("n@f.com");
userRepositoryNew.save(user);

User user1 = new User();
user1.setActive(true);
user1.setFirstName("test");
user1.setLastName("test");
user1.setPin("3333");
user1.setEmail("nauman@f1.com");
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;
}

}

最佳答案

你需要级联你的保存。在您的事件实体中,将一对多更改为如下所示:

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

关于java - 使用 spring-data 数据未持久保存在连接列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36524028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com