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

JPA:从表中接收几列以manytoone的形式链接的current

段干俊茂
2023-03-14
@Entity
public class Car {

@JsonIgnoreProperties({"telephone", "mail",})
@ManyToOne
@JoinColumn(name = "driver_id"),
private Driver driver;
...
}

@Entity
class Driver: 

@JsonIgnoreProperties({"telephone", "mail",})
public class Driver {

private Long id;
private String firstName;
private String lastName;
private String telephone;
private String mail;
...
}
CREATE TABLE `car` (
`id` decimal(20) unsigned NOT NULL AUTO_INCREMENT,
`driver_id` bigint(20) DEFAULT NULL,
 PRIMARY KEY (`id`),
 FOREIGN KEY (driver_id) REFERENCES driver(id),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

首先,我认为下一种方式也可以接收司机的名字和姓氏:

@JoinColumns({@JoinColumn(name = "driver_id"),
        @JoinColumn(name = "first_name"),
        @JoinColumn(name = "last_name")})

但是文档表明,@joincolums仅适用于复合fk。请给我一个提示,我该怎么做需要的事情。

共有1个答案

邵星光
2023-03-14

假设驱动程序类是一个实体(在上面的代码中没有添加@entity注释)

你当前的映射是说每个司机可以驾驶多辆车。由于多对一只存在于car端,因此无法从drivercar。为此,需要有一个@onetomany映射,从DriverCAR。(还有,这不应该是一个多对多的映射吗?每个司机可以驾驶多辆车。而每辆车可以有多个司机?)

在任何情况下,给定上面的映射,您应该能够访问Driver.FirstName和Driver.LastName。当您尝试这样做时,错误是什么?

 类似资料:
  • 在关于如何使用复合主键的情况下

  • 我最近一直在通读Geb的书,并试图掌握它,因为它似乎是一个伟大的工具。我觉得我已经到了那里,但仍然有一些真正的核心概念,我似乎无法理解。 谢谢!

  • 我认为我发现了一个错误在运行时的Java与JSF 2.0(使用Primeface),在这个项目中我使用JSF 2.0 Primeface和CDI。 恢复问题,我的业务类Role中有一个方法设置器收到了一个List,但JSF正在设置一个ArrayList。java应该抛出异常还是至少不应该找到匹配的方法?这里是: 该方法的输出为: 当我尝试在foreach中使用这样的: 投掷 你能解释一下这是怎么回

  • 我试图在c语言中的双链表中使用null对象模式,但我似乎找不到一种在保持代码整洁的同时使用它的方法。 问题出在以下代码中: 如果下一个/上一个节点是,则和将返回对象。 此操作失败的用例-当节点为头节点时: 下面将第二个节点的上一个指针设置为导致内存泄漏的NullNode对象。 我在这里要做的是保持NOP,保持代码干净,不受和类类型比较的影响, 任何建议都将不胜感激!

  • 当流过< code>List时,如何将输出收集到一个链表中? 我尝试了以下方法: 但是这给了 java.util.数组列表不能转换为 java.util.链接列表.