无法解决“USERNAME”列减少

时间:2015-09-18 21:01:22

标签: java hibernate intellij-idea

我开发了Spring Framework MVC应用程序。我也用hibernate。现在我为User实体制作简单的POJO。

@Entity
@Table(name="USERS")
public class User{
    @Column(name = "USERNAME", nullable = false, unique = true)
    private String username;
}
  • 我配置了org.springframework.orm.hibernate4.LocalSessionFactoryBean

我的代码正在运行,但IDEA向我显示了下一个警告。

  

无法解决列'USERNAME'较少...(Ctrl + F1)此检查   控制是否检查持久性ORM注释   配置数据源

我做错了什么?

3 个答案:

答案 0 :(得分:11)

当光标位于Alt+Enter时,按USERNAME可查看包含可用操作的弹出窗口。您将看到一个选项“配置数据源”或类似的东西,选择它,您将看到一个窗口。您应该根据数据库类型(PostgreSQL,MySQL等)添加新数据源,并使用您的连接参数进行配置。

有用的链接:Managing Data Sources

答案 1 :(得分:1)

1。步骤1

您必须转到项目设置下的项目结构,选择模块

单击绿色加号图标,然后选择休眠,然后单击确定。

enter image description here

2。步骤2

现在,您必须将数据源分配给Intellij,在Intellij窗口的右侧,您可以看到此数据库图标,如果不存在,则必须标记 View> Tool Buttons < / strong>

enter image description here

点击绿色的加号按钮,然后选择数据源,然后通过这种方式连接数据库。

3。步骤3

在Intellij的左侧,您必须看到下图所示的Presistence按钮。

enter image description here

右键单击 getSessionFactory>关联数据源。,然后必须将数据源选择为sessionFactory。

注意:如果您更新架构并更新数据库,则必须通过单击数据库窗口中的刷新按钮来更新和同步与Intellij连接的数据库:

enter image description here

注意:这适用于所有实体,您会看到某些实体类的属性的红线是您的类名超过一个单词,并且必须在其中定义表名的原因像这样的 @table

@Entity
@Table(name = "user_info")
class UserInfo {

答案 2 :(得分:0)

你知道,当Hibernate更新到4.3.x时,不支持@Table注释。 更改的是,当您需要在Model中定义表名时,需要输入如下内容: 的 @实体(名称= “表名”)