我有一个带有JPA的JavaRESTAPI。每当我创建一个实体时,我还希望创建另一个具有forgein键的实体。或者有人可以给我其他建议,我会非常感激,并从中学习=)当我成功创建一家公司时,它也会在数据库中创建一个文件实体,因此工作正常。但是,每当我在JPA存储库中执行findAll方法时,它都会给我一个我创建的公司的循环。这样地:
如果你需要更多的信息,请告诉我!
公司班
package nl.hulpvriend.dehulpvriend.company;
import javax.validation.constraints.NotNull;
import lombok.*;
import nl.hulpvriend.dehulpvriend.file.File;
import javax.persistence.*;
import javax.validation.constraints.Size;
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Setter
@Getter
public class Company {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@NotNull
private String email;
@Column(unique = true)
@NotNull(message = "The company name cannot be empty")
@Size(max = 30, message = "Company name cannot be longer than 30 characters")
private String name;
@NotNull(message = "Company must contain a service type")
@Enumerated(EnumType.STRING)
private ServiceType serviceType;
private double stars;
private Integer pricePerHour;
private String description;
private String kvk;
@OneToOne(mappedBy="company", cascade = CascadeType.ALL)
private File file;
}
File.class
package nl.hulpvriend.dehulpvriend.file;
import lombok.*;
import nl.hulpvriend.dehulpvriend.company.Company;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
@AllArgsConstructor
@Getter
@Setter
@NoArgsConstructor
@Entity
@Data
public class File {
@Id
private Integer id;
private String fileId;
@OneToOne(fetch = FetchType.EAGER)
@MapsId
private Company company;
@NotNull(message = "Must contain a data")
@Lob
private byte[] data;
private String downloadUrl;
private String fileName;
private String fileType;
public File(String fileName, String fileType, byte[] data) {
this.fileName = fileName;
this.fileType = fileType;
this.data = data;
}
}
将JsonIgnore添加到其中一个引用以中断循环:
例如在File类中:
@JsonIgnore
@OneToOne(fetch = FetchType.EAGER)
@MapsId
private Company company;
我似乎不明白为什么在双链接列表的末尾插入节点会陷入循环。它要么卡在循环中,要么是空指针。另外,我想知道在处理链表或任何数据结构时,公共节点是更好还是公共无效。
我想用谷歌搜索一下,通过回溯来解决迷宫问题!我看到了这个算法:递归:解迷宫 这是: 查找路径(x,y) > 如果(x,y在迷宫外)返回false 如果(x,y是目标)返回true 如果(x,y未打开)返回false 将x、y标记为解决方案路径的一部分 if(FIND-PATH(x,y以北)=true)返回true if(FIND-PATH(x,y以东)=true)返回true 如果(FIND-PA
我正在尝试实现discovery first spring cloud配置模式。这是我的客户端bootstrap.yml 配置取为ok,客户端启动但未在eureka注册 因此,当我查看eureka仪表板时,我只看到配置服务,而不是客户端应用程序。文档没有明确说明这不起作用(如果我理解正确的话)。 这是故意的吗?这是窃听器吗?是否有可能实现此设置?
我无法从位于GitHub中的ConfigBeans(https://github.com/spring-cloud/spring-cloud-netflix/tree/master/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/Eureka)中调用一个属性来更改Eureka服务器的心跳和发现上下文
问题内容: 据我所知,反射包中没有类型发现机制,该机制希望您已经具有要检查的类型或值的实例。 还有 其他 方法可以发现正在运行的go包中的所有导出类型(尤其是结构)吗? 这是我希望拥有的(但不存在): 最终目标是能够发现满足特定条件的程序包的所有结构,然后能够实例化这些结构的新实例。 顺便说一句,识别类型的注册功能对于我的用例 不是 有效的方法。 无论您是否认为这是一个好主意,这就是为什么我想要这
我试图编写一个函数,打印从根节点到叶节点的所有路径。 按从根到叶的顺序打印节点 例如 对于此示例,2是根,1-3是叶。 这是我的简单代码,我找不到新行应该在哪里,因为当我在任何地方写printf(“\n”)时,它打印出疯狂的输出,所以我在这段代码中找不到问题。