java - Hibernate:缺少列数

标签 java hibernate jpa hbm2ddl

这是我的实体:

@Entity
@Table(name="log_shop")
public class LogShop {

    @Id
    @GeneratedValue
    private int id;

    private String platform;

    @Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
    private DateTime logged;

    @ManyToOne
    private Player player;

    private String type;

    @Column(name="type_value")
    private String typeValue;

    @Column(name="shop_source")
    private String shopSource;

    @Column(name="buy_confirm")
    @Type(type="org.hibernate.type.NumericBooleanType")
    private boolean buyConfirm;

    @Column(name="buy_yes")
    @Type(type="org.hibernate.type.NumericBooleanType")
    private boolean buyYes;

    @Column(name="not_enough_coins")
    @Type(type="org.hibernate.type.NumericBooleanType")
    private boolean notEnoughCoins;

    @Column(name="not_enough_coins_yes")
    @Type(type="org.hibernate.type.NumericBooleanType")
    private boolean notEnoughCoinsYes;

    LogShop() {}

    public LogShop(String platform, DateTime logged, Player player, String type, String typeValue, String shopSource, boolean buyConfirm, boolean buyYes,
            boolean notEnoughCoins, boolean notEnoughCoinsYes) {
        this.platform = platform;
        this.logged = logged;
        this.player = player;
        this.type = type;
        this.typeValue = typeValue;
        this.shopSource = shopSource;
        this.buyConfirm = buyConfirm;
        this.buyYes = buyYes;
        this.notEnoughCoins = notEnoughCoins;
        this.notEnoughCoinsYes = notEnoughCoinsYes;
    }

}

在启动时,Hibernate(使用 hbm2ddl 验证)提示 org.hibernate.HibernateException: Missing column: count in xxxxx.log_shop

但是如您所见,实体类中没有引用名为count 的列。为什么 Hibernate 要求它存在于数据库中?

完整引用,下表:

CREATE TABLE `log_shop` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `platform` varchar(26) NOT NULL DEFAULT 'web',
  `logged` datetime NOT NULL,
  `player_id` int(11) NOT NULL,
  `type` varchar(26) NOT NULL,
  `type_value` varchar(26) NOT NULL,
  `shop_source` varchar(26) NOT NULL,
  `buy_confirm` int(1) NOT NULL,
  `buy_yes` int(1) NOT NULL,
  `not_enough_coins` int(1) NOT NULL,
  `not_enough_coins_yes` int(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

最佳答案

好吧,那是愚蠢的... 结果我不小心将 @Table(name="log_shop") 也应用到了另一个实体类,它确实引用了 count 列。

不过,如果 Hibernate 能指出这是关于哪个类和领域的,那就太好了。

关于java - Hibernate:缺少列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811562/

相关文章:

java - java中的字符串缓冲区

java - 找不到适合 jdbc :mysql://localhost:3306/test 的驱动程序

mysql - 在 JPA/Hibernate 中持久映射到 MySQL View 的实体

mysql - 在没有 native 查询的情况下在 JPA 中更新

java - 系统异常与应用程序异常的清晰解释

java - Seam @Transactional 注释的正确用法是什么?

java - Apache HttpClientBuilder - IllegalArgumentException

java - Lucene setPositionIncrement 不起作用

java - 如何通过在 Spring 中乘以一些值来对结果进行排序?

java - 将 Quarkus 和 Hibernate 与 db2/400 结合使用