Hibernate 工具无法检测一对一关系

2024-05-08

我正在尝试使用 Eclipse 中的 Hibernate 工具(注释)从 MySQL 数据库生成实体类。但是,我在生成一对一关系代码时遇到了麻烦。我的 MySQL 表当前正在确保这种关系,但 Hibernate 工具无法检测到它......

“一个用户与一名员工相关联”

这是我的表的代码..用户第一

CREATE TABLE `user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(45) NOT NULL,
`is_active` tinyint(1) NOT NULL DEFAULT '1',
`role_id` int(11) NOT NULL,
`emp_id` int(11) NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `employee_emp_id_UNIQUE` (`emp_id`),
KEY `fk_user_role` (`role_id`),
KEY `fk_user_employee1` (`emp_id`),
CONSTRAINT `fk_user_role` FOREIGN KEY (`role_id`) REFERENCES `role` (`role_id`) ON
DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_user_employee1` FOREIGN KEY (`emp_id`) REFERENCES `employee` (`emp_id`)
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

和员工2号

CREATE TABLE `employee` (
`emp_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`address` varchar(45) DEFAULT NULL,
`CNIC` varchar(15) DEFAULT NULL,
`hourly_rate` int(11) NOT NULL,
`is_allowed` tinyint(1) NOT NULL DEFAULT '0',
`is_active` tinyint(1) NOT NULL DEFAULT '1',
`code` varchar(5) NOT NULL,
PRIMARY KEY (`emp_id`),
UNIQUE KEY `code_UNIQUE` (`code`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

生成的代码是一对多...

对于用户等级

@Entity
@Table(name = "user", catalog = "ieeepi_pharmacy", uniqueConstraints =
@UniqueConstraint(columnNames = "emp_id"))
public class User implements java.io.Serializable {

private int userId;
private Role role;
private Employee employee;
private String username;
private String password;
private boolean isActive;

@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "user_id", unique = true, nullable = false)
public int getUserId() {
    return this.userId;
}

public void setUserId(int userId) {
    this.userId = userId;
}

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "role_id", nullable = false)
public Role getRole() {
    return this.role;
}

public void setRole(Role role) {
    this.role = role;
}

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "emp_id", unique = true, nullable = false)
public Employee getEmployee() {
    return this.employee;
}

public void setEmployee(Employee employee) {
    this.employee = employee;
}

@Column(name = "username", nullable = false, length = 20)
public String getUsername() {
    return this.username;
}

public void setUsername(String username) {
    this.username = username;
}

@Column(name = "password", nullable = false, length = 45)
public String getPassword() {
    return this.password;
}

public void setPassword(String password) {
    this.password = password;
}

@Column(name = "is_active", nullable = false)
public boolean isIsActive() {
    return this.isActive;
}

public void setIsActive(boolean isActive) {
    this.isActive = isActive;
}

}

而对于员工..

@Entity
@Table(name = "employee", catalog = "ieeepi_pharmacy", uniqueConstraints = 
@UniqueConstraint(columnNames = "code"))
public class Employee implements java.io.Serializable {

private int empId;
private String name;
private String address;
private String cnic;
private int hourlyRate;
private boolean isAllowed;
private boolean isActive;
private String code;
private Set<User> users = new HashSet<User>(0);
private Set<Attendance> attendances = new HashSet<Attendance>(0);

@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "emp_id", unique = true, nullable = false)
public int getEmpId() {
    return this.empId;
}

public void setEmpId(int empId) {
    this.empId = empId;
}

@Column(name = "name", nullable = false, length = 45)
public String getName() {
    return this.name;
}

public void setName(String name) {
    this.name = name;
}

@Column(name = "address", length = 45)
public String getAddress() {
    return this.address;
}

public void setAddress(String address) {
    this.address = address;
}

@Column(name = "CNIC", length = 15)
public String getCnic() {
    return this.cnic;
}

public void setCnic(String cnic) {
    this.cnic = cnic;
}

@Column(name = "hourly_rate", nullable = false)
public int getHourlyRate() {
    return this.hourlyRate;
}

public void setHourlyRate(int hourlyRate) {
    this.hourlyRate = hourlyRate;
}

@Column(name = "is_allowed", nullable = false)
public boolean isIsAllowed() {
    return this.isAllowed;
}

public void setIsAllowed(boolean isAllowed) {
    this.isAllowed = isAllowed;
}

@Column(name = "is_active", nullable = false)
public boolean isIsActive() {
    return this.isActive;
}

public void setIsActive(boolean isActive) {
    this.isActive = isActive;
}

@Column(name = "code", unique = true, nullable = false, length = 5)
public String getCode() {
    return this.code;
}

public void setCode(String code) {
    this.code = code;
}

@OneToMany(fetch = FetchType.LAZY, mappedBy = "employee")
public Set<User> getUsers() {
    return this.users;
}

public void setUsers(Set<User> users) {
    this.users = users;
}

@OneToMany(fetch = FetchType.LAZY, mappedBy = "employee")
public Set<Attendance> getAttendances() {
    return this.attendances;
}

public void setAttendances(Set<Attendance> attendances) {
    this.attendances = attendances;
}

}

您看到的结果是一对多...我还检查了“检测一对一关联”选项但无济于事...:(


解决问题的关键是将父表的外键设置为子表的主键。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate 工具无法检测一对一关系 的相关文章

随机推荐

  • 停止 Erlang 守护进程

    除了跑步 killall 9 beam smp 当我知道 Erlang 节点的情况时 如何以编程方式杀死它 sname 如果我不希望心跳监视器重新启动该进程 如何确保上述问题的任何答案也会终止心跳 有没有一个不错的指南来将 Erlang 部
  • DataGrid、TextBox - 绑定和即时更新

    我的应用程序 包含图中的窗口 DataGrid 的 ItemsSource 设置为 editList 声明为 IList editList 数据网格设置为只读 供应商名称文本框的绑定设置为 Text Binding ElementName
  • 从 MVC 控制器返回 JSON 字符串

    我使用以下代码将对象发送 接收到我的 mvc 控制器 ajax url createOrUpdateTimeRecord data JSON stringify data type POST dataType json contentTyp
  • 在 Windows 10 上构建 Autodesk Forge RCDB 失败并出现 node-gyp 错误

    尝试构建 Forge 响应式连接数据库时 我无法在我的 Windows 10 计算机上构建此应用程序 我无法成功运行 npm install 我收到如下错误 我最终尝试使用预先配置的 画布 但它仍然无法让节点应用程序运行 https git
  • WinDbg中出现“SOS版本与您正在调试的CLR版本不匹配”怎么办?

    我的某些应用程序出现问题 它是一个基于 wcf 的应用程序 在 Windows 2003 Server x86 的 IIS6 下运行 在事件日志中 我从 W3SVC WP 源 EventID 2262 收到这样的错误 ISAPI C WIN
  • C语言中变量名是如何存储在内存中的?

    在 C 中 假设你有一个名为variable name 假设它位于0xaaaaaaaa 在该内存地址处 您有整数 123 换句话说 variable name包含 123 个 我正在寻找有关措辞的澄清 variable name位于0xaa
  • antd上传控件需要action函数,但我不需要它

    我正在使用 ant design 组件 并且有一个上传输入 https ant design components upload https ant design components upload 根据文档 需要对道具进行操作 但是 我不
  • HTML 5 视频自定义控件

    与许多 Web 开发人员一样 我期待着利用新的 HTML 5 进行流式传输视频
  • 如何在 Foundry 中回滚数据集事务?

    我在 Foundry 上有一个增量数据集 并且上传了一个包含不正确数据的文件 如何反转此事务以便我可以使用正确的数据更新数据集 您可以使用 Foundry 的 Catalog API 您首先需要找到要恢复到的事务的资源 ID rid 当您在
  • Conda 无法在 Powershell 中激活

    我已经在我的 Windows 10 笔记本电脑上安装了 anaconda 我正在尝试激活名为的Python环境pyenv 首先 我检查conda env list在我的笔记本电脑中 这是 powershell 上的输出 PS C Users
  • 图像上的 JQuery 加载事件

    我想在加载图像时将图像父级的大小调整为与图像相同的大小 此时我正在使用这段代码 window load function image principale each function this parent css height this
  • CSS 圆角

    我见过很多这方面的代码 但似乎没有一个能很好地工作或根本无法工作 我已经将图片用于圆角 但我需要代码 以便它能够围绕圆角 table 我找到的解决这个问题的唯一解决方案是在边框周围的单元格中添加图像 我还能尝试什么吗 Try selecto
  • 为什么我收到错误“错误 C2259:...无法实例化抽象类”?

    任何帮助都是appriced 我正在研究 C 工厂模式 但收到此错误 1 gt c users brian documents visual studio 2010 projects cst276lab 3 guitar hpp 456 错
  • Ruby + Rspec:我应该如何测试 attr_accessor?

    我有一个ReturnItem class specs require spec helper describe ReturnItem do is this enough it should respond to chosen it shou
  • 为什么我的 UITableView 顶部有额外的填充,样式为 UITableViewStyleGrouped 在 iOS7 中

    从 iOS7 开始 我的顶部有额外的空间UITableView有一种风格UITableViewStyleGrouped 这是一个例子 tableview从第一个箭头开始 有35个像素的不明填充 然后绿色标题是UIView由返回viewFor
  • 具有漫反射和法线贴图纹理的 3D 模型

    我想使用 libgdx 的资源加载器加载具有漫反射纹理和法线贴图的 3D 模型 据我所知 fbx 以及转换后的 g3dj g3db 格式可以包含漫反射纹理 正如我在 fbx conv 示例中看到的那样 骑士 g3db 如何为其添加法线贴图纹
  • 如何使用 Kotlin 在 ListAdapter 中使用 Filterable?

    我会用一个SearchView过滤我的RecyclerView 在 stackoverflow 和其他网站上我发现只是使用的示例Filterable与 Java 和RecyclerView Adapter当我使用时ListAdapter 所
  • 在 Phaser3 中从 Multiatlas 加载文件时出错

    尝试使用 Phaser 和 TexturePacker 中的多图集功能 出现此错误 VM32201 1 GET http localhost 8080 bg sd json 404 Not Found Texture js 250 Text
  • 如何过滤 pyspark 列表中值的列?

    我有一个数据框原始数据 我必须在 X 列上应用值 CB CI 和 CR 的过滤条件 所以我使用了下面的代码 df dfRawData filter col X between CB CI CR 但我收到以下错误 Between 恰好需要 3
  • Hibernate 工具无法检测一对一关系

    我正在尝试使用 Eclipse 中的 Hibernate 工具 注释 从 MySQL 数据库生成实体类 但是 我在生成一对一关系代码时遇到了麻烦 我的 MySQL 表当前正在确保这种关系 但 Hibernate 工具无法检测到它 一个用户与