İçinde bir haritanız var. Birleştirme tablosunun kullanımı ile eşleştirilir. "Bilinmeyen sütun 'sources0_.sources' 'alan listesinde' in":Hazırda bekletme: Harita değerleri sütun adı nasıl tanımlanır?
@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(); }
}
aşağıdaki özel durum alırsınız. 'list_id' sütun adını 'kaynaklara' değiştirdiğimde işler işe yaramıyor ama bunu üretimde yapamıyorum.
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`));
Bunu kullanmak için '@Table (name = "Sources") 'i kullanmak istemişsiniz. Kaynakların küçük olması gerektiği gibi görünüyor. '@Table (name =" sources ")' – Drew1208
Hem alt hem de büyük harf denedim. Yazdığım gibi, 'list_id' kaynağından 'sources.' Dizinindeki sütun adını değiştirdiğimde Hibernate, derhal durur. Bu nedenle sorun Sources.getSources() yöntemidir. Hibernate ignores @ JoinColumn = (name = "list_id") ek açıklama gibi görünüyor. –