gpt4 book ai didi

java - Hibernate:如何定义映射值列名称?

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:50 26 4
gpt4 key购买 nike

我有一个类,里面有 map 。它是使用连接表进行映射的。

@Entity 
@Table(name = "Sources")
@Lazy(false)
public class Sources {
@ManyToMany( fetch = FetchType.EAGER )
@JoinTable( name = "sources_lists", joinColumns = @JoinColumn( name = "list_id" ) )
@MapKeyColumn( name = "source_id" )
public Map<Integer, Source> getSources() { return sources; }
public void setSources( Map<Integer, Source> sourcesList ) { this.adSources = adSourcesList; }
private Map<Integer, Source> sources;

@Override
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column( name="id", unique = true, nullable = false, updatable = false )
public Integer getId() { return super.getId(); }
}

我收到以下异常:“‘字段列表’中存在未知列‘sources0_.sources’”。当我将“list_id”列名称更改为“源”时,一切正常,但我无法在生产中执行此操作。

表格是:

CREATE TABLE `sources` (
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`) );

CREATE TABLE `source` (
`DTYPE` varchar(31) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
`className` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`));

CREATE TABLE `sources_lists` (
list_id` int(11) NOT NULL,
`source_id` int(11) NOT NULL,
KEY `FK54DCBD0B4307D0FC` (`source_id`),
KEY `FK54DCBD0B575FBECF` (`list_id`),
CONSTRAINT `FK54DCBD0B4307D0FC` FOREIGN KEY (`source_id`) REFERENCES `source` (`id`),
CONSTRAINT `FK54DCBD0B575FBECF` FOREIGN KEY (`list_id`) REFERENCES `sources` (`id`));

最佳答案

我意识到问题不在于列,而在于其他东西:我想通过其 id 映射 Source 对象,并且 Hibernate 假设连接表中有 3 列:父对象 id(Sources 类,list_id 列)、对象 id(Source 类、source_id 列)和映射键的单独列。我将提出另一个问题来询问在 Hibernate 中通过 id 映射对象的方法是什么。

关于java - Hibernate:如何定义映射值列名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36337752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com