java - 公式不能转换为类 org.hibernate.mapping.Column
问题描述
我正在尝试为旧数据库表编写 @ManyToOne 和 @OnoToMany 关系。这些表没有专用的外键和主键 id 列,而是使用两列连接数据。
如何使用 access`s userId 加入客户 ID(连接 id1 和 id2)?我也试过@JoinColumnsOrFormulas,但它失败了。
@Entity
public class Access {
private String userId;
@ManyToOne
// @JoinColumnsOrFormulas({
// @JoinColumnOrFormula(column = @JoinColumn(name = "user_id")),
// @JoinColumnOrFormula(formula = @JoinFormula("concat(id1, id2)"))
// })
@JoinFormula("(SELECT c.id FROM Customer c WHERE c.id1 || c.id2 = userId)")
private Customer customer;
}
@Entity
public class Customer {
private Long id;
private String id1;
private String id12;
@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
private Set<Access> accesses;
当应用程序启动时,它会抛出这个异常:
Caused by: java.lang.ClassCastException: class org.hibernate.mapping.Formula cannot be cast to class org.hibernate.mapping.Column (org.hibernate.mapping.Formula and org.hibernate.mapping.Column are in unnamed module of loader 'app')
预先感谢
解决方案
推荐阅读
- node.js - Koa Session 访问存储来自上下文的客户端连接
- javascript - 有没有办法下载特定页面上播放的所有音频流的音频文件?
- ruby-on-rails - Rails RecordNotFound 找不到带有 id 的专辑
- flutter - 从地图中获取地图列表的索引
- javascript - 我需要按日期过滤任务以显示在某个区域 - React Native
- node.js - 用于生产的免费 SMTP
- r - 在函数中设置默认值时遇到问题[r]
- python - 如何使用python获取json响应?
- css - 在灰度背景图像上将文本颜色从黑色“反转”为白色
- python - Python networkx边缘和节点标记问题