好了,所以在数据库中有一个名为distributionCompanies表,像这样创建:Hibernate的异常:缺少列(列存在)
CREATE TABLE `distributionCompanies` (
`distributionCompanyID` INT(11) NOT NULL,
`distributionCompanyName` VARCHAR(255) NOT NULL,
PRIMARY KEY (distributionCompanyID)
);
我想这个表映射到使用Hibernate类:
@Entity
@Table(name = "distributionCompanies")
public class DistributionCompany implements DatabaseObject {
@Id
@GeneratedValue
@Column(name = "distributionCompanyID", length = 11, unique = true, nullable = false)
private int distributionCompanyID;
....
但是,在运行的时候,我打这个问题:
Initial SessionFactory creation failedorg.hibernate.HibernateException: Missing column: distributionCompanyID_distributionCompanyID in database2.distributionCompanies
这是不是在唯一的表数据库,我已经设法使用相同的方法成功地映射其他类,所以我有点难以理解为什么这会导致问题。
谢谢您的时间, 塞缪尔·史密斯
编辑:在回答哈维的评论,我暂时删除该列另一个映射,错误走了,所以坏鸡蛋可能在以下规定代码:
@ManyToOne(targetEntity = DistributionCompany.class)
@JoinTable(name = "distributionCompanies", joinColumns = { @JoinColumn(name = "distributionCompanyID", nullable = false) })
private int distributionCompanyID;
看来Hibernate正在寻找名为'distributionCompanyID_distributionCompanyID'的列。这个实体是否有其他映射(例如与其他实体的关联)?你有没有试过只留下这一列的映射,以确保它是一个引起错误的那个?如果只有'distributionCompanyId'的映射工作正常,请发布实体的完整映射。 –
您想要使用的@Generatedvalue策略。它真的是AUTO的DEFAULT吗? –
@XaviLópez - 你让我走了一条正确的道路,看到我的编辑。谢谢:) –