当前位置: 首页 > 知识库问答 >
问题:

Java spring数据OneToMany relationschip错误

段干华晖
2023-03-14

谁能帮我提个问题。我把对象结构化了,就像在文档中一样,但是关系芯片一个都不起作用。

    Order:
    - Positions
    - Partners

    I receiving error:

    SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order (order_id)' at line 1

订单:

@Getter
@Setter
@Entity
@Table(name = "e_orders")
public class Order {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "order_id")
    private int orderId;

    @Column(unique = true)
    private String orderNumber;
    private int count;

    @OneToMany(mappedBy = "e_orders", fetch = FetchType.LAZY)
    private List<Partner> partners;

    @OneToMany(mappedBy = "e_orders", fetch = FetchType.LAZY)
    private List<Position> positions;
}

合作伙伴:

@Getter
@Setter
@Entity
@Table(name = "e_partner")
public class Partner {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "partner_id")
    private int id;

    private String name;
    private String street;
    private String city;

    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
    @JoinColumn(name = "order_e_id")
    private Order attachedOrder;
}

职位:

@Getter
@Setter
@Entity
@Table(name = "e_position")
public class Position {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "position_id")
    private int id;

    private String guid;
    private String posnr;

    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
    @JoinColumn(name = "order_e_id")
    private Order attachedOrder;
}

共有1个答案

东方吕恭
2023-03-14

我认为问题出在mappedby值上,因为mappedby的值应该与相应类中的属性名相同,而不是@table注释中的值。因此,要解决此问题,只需将mappedby中的值从e_orders改为attachedorders

 类似资料:
  • 我正在尝试对数据库执行条件插入操作(假设为SQLite)。我的目标是确保数据一致性。 假设我们正在做一个预约计划。 所以我们有一个这样的约会表: > 编号 个人的 appointment_date 但是我们有一个重要的规则,一个人在同一天的约会不能超过3次。 通常,我们从数据库中查询此人当天有多少约会。然后我们决定是否插入。对吧? 但是,假设我们有一个获得大量流量的API。假设两个类似的交易在同一

  • [见底部更新]我试图通过Tomcat启动Spring Web应用程序,但是当我在浏览器中输入urlhttp://localhost:8080/demo-mvc/时,我收到了404错误和一条消息“请求的资源[/demo-mvc/]不可用”。起初,我试图通过NetBeans部署应用程序,它说部署成功,但是在浏览器启动时,我收到了404错误。我检查了Tomcat/webapp目录,不知为什么没有找到应用

  • 下面是我的配置:

  • 我在运行我的spring boot项目时遇到了一个问题: 我使用Vaadin来实现UI,使用Maven来实现Dependecies。该数据库是一个MySQL数据库,我严格按照(https://spring.io/guides/gs/accessing-data-mysql/)的说明进行了操作。 说明: 行动: 考虑重新考虑上面的条件,或者在配置中定义一个类型为'javax.sql.DataSour

  • 问题内容: 我正在使用Spring JPA执行所有数据库操作。但是我不知道如何从Spring JPA的表中选择特定的列? 例如: 问题答案: 你可以从这样的类中在注释中进行设置: 请注意,你将不得不自己进行映射。像这样使用常规映射查找可能会更容易,除非你确实只需要这两个值: 也许也值得看一下Spring数据文档。

  • 我试图从OpenAPI v3 YAML文件生成Spring REST接口。构建说: 但是在输出目录中没有生成代码。 我遵循OpenAPI生成器gradle插件doc doc。 我的build.gradle: 我的api。yml: 应用程序编程接口。生成器正确收集yml(如果文件中存在任何语法错误,则生成失败)。 生成日志显示:),这看起来很可疑。这不意味着属性包含生成的结果吗? 渐变版本: 编辑:

  • 我正试图使用提供的MVC Spring项目模板从SpringToolSuite创建一个JAR或WAR文件。当我尝试导出(通过STS)或clean package(maven)代码时,JAR总是无法运行,因为找不到主清单属性。模板项目中也没有提供main()的类。该项目确实在我设置的关键tc服务器实例上的STS中运行。当我试图将项目导出为JAR时,问题就出现了。 这是我的项目的pom.xml: