Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两个表之间的Quarkus/Hibernate关系_Java_Hibernate_Quarkus_Quarkus Panache - Fatal编程技术网

Java 两个表之间的Quarkus/Hibernate关系

Java 两个表之间的Quarkus/Hibernate关系,java,hibernate,quarkus,quarkus-panache,Java,Hibernate,Quarkus,Quarkus Panache,我尝试用数据库创建一个简单的web应用程序。我的数据库只有两列: CREATE TABLE IF NOT EXISTS `Board` ( `BoardID` Integer NOT NULL AUTO_INCREMENT, `Title` Varchar(255), `Position` Integer NOT NULL, PRIMARY KEY (`BoardID`) ); CREATE TABLE IF NOT EXISTS `Task` ( `TaskID` Int

我尝试用数据库创建一个简单的web应用程序。我的数据库只有两列:

CREATE TABLE IF NOT EXISTS `Board` (
  `BoardID` Integer NOT NULL AUTO_INCREMENT,
  `Title` Varchar(255),
  `Position` Integer NOT NULL,
  PRIMARY KEY (`BoardID`)
);

CREATE TABLE IF NOT EXISTS `Task` (
  `TaskID` Integer NOT NULL AUTO_INCREMENT,
  `BoardID` Integer NOT NULL,
  `Title` Varchar(255),
  `Description` Varchar (1000),
  PRIMARY KEY (`TaskID`),
  FOREIGN KEY (`BoardID`)
  REFERENCES Board(`BoardID`)
);
型号:

@Entity
public class Task extends PanacheEntity {

    @Column(name = "TaskID")
    private Long taskId;

    @ManyToOne (fetch = FetchType.LAZY)
    @JoinColumn(name = "BoardID")
    private Board board;
...
}
@实体
公共类委员会扩大了泛公共性{
@列(name=“BoardID”)
私人长板ID;
@OneToMany(mappedBy=“board”,orphan=true)
私有集任务;
...
}
我的休息方法

@Path("/hello")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class ExampleResource {

    @Inject
    BoardRepository boardRepository;

    @GET
    @Transactional
    public List<Board> getAll() {
        return boardRepository.listAll();
    }
}
@Path(“/hello”)
@使用(MediaType.APPLICATION_JSON)
@产生(MediaType.APPLICATION_JSON)
公共类示例资源{
@注入
董事会知识库董事会知识库;
@得到
@交易的
公共列表getAll(){
返回boardRepository.listAll();
}
}
我的代码正在编译,但调用REST方法时收到错误:


请帮帮我,我做错了什么

请检查
panacheinty的代码
。从JavaDoc:

表示具有生成的{@link Long}类型的ID字段{@link#ID}的实体。如果您的Hibernate实体扩展了这个类,那么它们将获得ID字段和自动生成的对其所有公共字段的访问器(除非用{@link Transient}注释),以及来自{@link panachEntityBase}的所有有用方法

如果需要自定义ID类型或策略,可以直接扩展{@link panachEntityBase},并编写自己的ID字段。您仍将获得自动生成的访问器和 所有有用的方法

从此处复制的JavaDoc:

您的id列没有名称“id”。因此,您应该改用
PanachEntityBase
,您必须更改实体并将
@Id
注释添加到Id字段中:

@Entity
public class Task extends PanacheEntityBase {

    @Id
    @Column(name = "TaskID")
    private Long taskId;

    @ManyToOne (fetch = FetchType.LAZY)
    @JoinColumn(name = "BoardID")
    private Board board;
...
}
@实体
公共类板扩展了PanacheEntityBase{
@身份证
@列(name=“BoardID”)
私人长板ID;
@OneToMany(mappedBy=“board”,orphan=true)
私有集任务;
...
}

如果要使用
panachEntity
作为基类,则必须更改数据库中的列名,并从实体中删除taskId和boardId。

panachEntity中有什么?使用哪个数据库?您的pojo也用
@Entity
注释,我使用MySQL。是的,我在pojo类中使用了带注释的@Entity。@TomStroemer如果我很了解PanachEntity allow use repository,比如CRUDhello,你会帮我进行惰性初始化吗?当我尝试使用Rest方法getAll()时,我收到一个错误,请创建一个新问题。将完整的stacktrace添加为文本,而不是图像。还请共享调用方法的代码以及实体的相关部分。
@Entity
public class Task extends PanacheEntityBase {

    @Id
    @Column(name = "TaskID")
    private Long taskId;

    @ManyToOne (fetch = FetchType.LAZY)
    @JoinColumn(name = "BoardID")
    private Board board;
...
}
@Entity
public class Board extends PanacheEntityBase {

    @Id
    @Column(name = "BoardID")
    private Long boardId;

    @OneToMany(mappedBy = "board", orphanRemoval = true)
    private Set<Task> task;
...
}