我是springboot的新手,非常感谢一些帮助。我的任务如下:
1.将JSON数据插入并存储到输入表中(使用eclipselink)此表中的一个数据是在服务实现中随机生成的UUID。
2.由ServiceImplementation.class生成的UUID随后存储在触发器表中。
我需要帮助存储UUID到触发器表,因为我不能找到一个合适的方法在线。
注意:我有一个存储库类用于这两个实体。
如果您需要我添加任何其他额外的代码片段,请让我知道。提前感谢!
Controller.java
package de.cibplus.cibplusngvdpGKZ.Controller;
import java.util.List;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import de.cibplus.cibplusngvdpGKZ.Model.GKZ;
import de.cibplus.cibplusngvdpGKZ.Model.GKZtrigger;
import de.cibplus.cibplusngvdpGKZ.Service.GKZService;
@RestController //@Controller + @ResponseBody
public class GKZController {
@Autowired
private GKZService gService;
//Save Input data
@PostMapping("/gkz")
public ResponseEntity<GKZ> saveGKZ(@RequestBody GKZ GKZ) {
GKZ gkz = gService.saveGKZ(GKZ);
return ResponseEntity.status(HttpStatus.CREATED).body(gkz) ;
}
}
}
Input.class
package de.cibplus.cibplusngvdpGKZ.Model;
import java.math.BigInteger;
import java.time.LocalDate;
//import java.util.Date;
import java.util.UUID;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.eclipse.persistence.annotations.UuidGenerator;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
@Entity
@Table(name= "T_CIB_CIBp_GKZ_I")
public class GKZ {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID")
private Integer ID;
@Column(name="stichtag")
private LocalDate stichtag;
@Column(name="refstreet")
private String refstreet;
@Column(name="hnr")
private String hnr;
@Column(name="street")
private String street;
@Column(name="city")
private String city;
@Column(name="zipcode")
private String zipcode;
@Column(name="objecttype_id")
private Integer objecttypeId;
@Column(name="client_id")
private String client_id;
@Column(name="valuation_id")
private BigInteger valuation_id;
@Column(name="uid")
private UUID uid;
public LocalDate getstichtag() {
return stichtag;
}
public void setstichtag(LocalDate stichtag) {
this.stichtag = stichtag;
}
public String getrefstreet() {
return refstreet;
}
public void setrefstreet(String refstreet) {
this.refstreet = refstreet;
}
public String gethnr() {
return hnr;
}
public void sethnr(String hnr) {
this.hnr = hnr;
}
public String getstreet() {
return street;
}
public void setstreet(String street) {
this.street = street;
}
public String getcity() {
return city;
}
public void setcity(String city) {
this.city = city;
}
public String getzipcode() {
return zipcode;
}
public void setzipcode(String zipcode) {
this.zipcode = zipcode;
}
public Integer getobjecttypeId() {
return objecttypeId;
}
public void setobjecttype_id(Integer objecttypeId) {
this.objecttypeId = objecttypeId;
}
public String getclient_id() {
return client_id;
}
public void setclient_id(String client_id) {
this.client_id = client_id;
}
public BigInteger getvaluation_id() {
return valuation_id;
}
public void setvaluation_id(BigInteger valuation_id) {
this.valuation_id = valuation_id;
}
public UUID getuid() {
return uid;
}
public void setuid(UUID uid) {
this.uid = uid;
}
public Integer getID() {
return ID;
}
public void setID(Integer ID) {
this.ID = ID;
}
}
Trigger.class
package de.cibplus.cibplusngvdpGKZ.Model;
import java.util.UUID;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
@Entity
@Table(name= "T_CIB_CIBp_uid")
public class GKZtrigger {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID")
private Integer ID;
@Column(name="uid")
private UUID uid;
public UUID getuid() {
return uid;
}
public void setuid(UUID uid) {
this.uid = uid;
}
public Integer getID() {
return ID;
}
public void setID(Integer iD) {
ID = iD;
}
}
Service.class
package de.cibplus.cibplusngvdpGKZ.Service;
import java.util.List;
import java.util.UUID;
import org.springframework.stereotype.Service;
import de.cibplus.cibplusngvdpGKZ.Model.GKZ;
import de.cibplus.cibplusngvdpGKZ.Model.GKZtrigger;
public interface GKZService {
GKZ saveGKZ(GKZ GKZ);
}
ServiceImplementation.class
package de.cibplus.cibplusngvdpGKZ.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import de.cibplus.cibplusngvdpGKZ.Model.GKZ;
import de.cibplus.cibplusngvdpGKZ.Model.GKZtrigger;
import de.cibplus.cibplusngvdpGKZ.Repository.GKZInputRepository;
import de.cibplus.cibplusngvdpGKZ.Repository.GKZTriggerRepository;
import de.cibplus.cibplusngvdpGKZ.Service.*;
@Service
public class GKZServiceImpl implements GKZService {
@Autowired
private GKZInputRepository gRepository;
@Override
public GKZ saveGKZ(GKZ GKZ) {
//Generate random UUID
UUID uuid=UUID.randomUUID();
GKZ.setuid(uuid);
gRepository.save(GKZ);
return GKZ;
}
}
2条答案
按热度按时间lymnna711#
我更新了我的ServiceImplementation类。
事实证明,只需创建一个示例,然后调用Repository就可以了!
ssm49v7z2#
在我的头上,你必须保存它到GKZTriggerRepository类似于你保存GKZ实体。
或从GKZ实体引用GKZtrigger实体
然后将GKZtrigger设置为GKZ实体,JPA将为您保存两者
你还得加上
字段添加到GKZtrigger类中,这样JPA就可以确定关系的双方。
如果你沿着这条路走下去,我建议你谷歌一下“JPA one to one”,然后在Baeldung上读一篇文章(应该是第一个结果)。当你把它写下来的时候,还有@OneToMany @ManyToOne和@ManyToMany注解。当你的JPA代码工作的时候,浏览一下数据库,看看创建了什么表,它们是如何关联的。