草庐IT

java - 无法构建 Hibernate SessionFactory,由 : org. hibernate.AnnotationException 引起:

coder 2023-10-12 原文

我的 mysql 数据库和 hibernate-tools 生成的类都有这个问题,在我对涉及 4 个表的数据库进行更改之前,一切都运行良好。

这是表格:

--

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=2;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';



-- -----------------------------------------------------
-- Table `profile`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `fairtime`.`profile` (
  `profile_id` INT(11) NOT NULL AUTO_INCREMENT,
  `created_at` DATETIME NOT NULL,
  `updated_at` DATETIME NULL DEFAULT NULL,
  `app_user_id` INT(11) NOT NULL,
  `address` VARCHAR(45) NOT NULL,
  `phone` VARCHAR(45) NOT NULL,
  `city_id` INT(11) NOT NULL,
  PRIMARY KEY (`profile_id`),
  INDEX `fk_profile_app_user1_idx` (`app_user_id` ASC),
  INDEX `fk_profile_city1_idx` (`city_id` ASC),
  CONSTRAINT `fk_profile_app_user1`
    FOREIGN KEY (`app_user_id`)
    REFERENCES `fairtime`.`app_user` (`app_user_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_profile_city1`
    FOREIGN KEY (`city_id`)
    REFERENCES `fairtime`.`city` (`city_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;



-- -----------------------------------------------------
-- Table `profile_option`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `fairtime`.`profile_option` (
  `profile_option_id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NOT NULL,
  `hidden_for_user` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
  `hidden_for_advertiser` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
  `hidden_for_offer` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
  `type` VARCHAR(45) NULL DEFAULT NULL,
  `is_unique_for_profile` TINYINT(1) NULL DEFAULT '0',
  `is_unique_for_target` TINYINT(1) NULL DEFAULT '0',
  PRIMARY KEY (`profile_option_id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;



-- -----------------------------------------------------
-- Table `profile_option_element`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `fairtime`.`profile_option_element` (
  `profile_option_element_id` INT(11) NOT NULL AUTO_INCREMENT,
  `profile_option_id` INT(11) NOT NULL,
  `name` VARCHAR(255) NOT NULL,
  `hidden_for_user` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
  `hidden_for_advertiser` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
  `hidden_for_offer` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
  `type` VARCHAR(45) NULL DEFAULT NULL,
  `app_user_id` INT(11) NULL DEFAULT NULL COMMENT 'When a user creates a brand in their MyFairTime',
  `approved` TINYINT(1) NOT NULL DEFAULT '0',
  `created_at` DATETIME NULL DEFAULT NULL,
  `boolean_value` TINYINT(1) NULL DEFAULT NULL,
  PRIMARY KEY (`profile_option_element_id`, `profile_option_id`),
  INDEX `fk_target_option_element_target_option1_idx` (`profile_option_id` ASC),
  INDEX `fk_profile_option_element_app_user1_idx` (`app_user_id` ASC),
  CONSTRAINT `fk_target_option_element_target_option1`
    FOREIGN KEY (`profile_option_id`)
    REFERENCES `fairtime`.`profile_option` (`profile_option_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_profile_option_element_app_user1`
    FOREIGN KEY (`app_user_id`)
    REFERENCES `fairtime`.`app_user` (`app_user_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;


-- -----------------------------------------------------
-- Table `profile_has_profile_option_element`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `fairtime`.`profile_has_profile_option_element` (
  `profile_profile_id` INT(11) NOT NULL,
  `profile_option_element_profile_option_element_id` INT(11) NOT NULL,
  `profile_option_element_profile_option_id` INT(11) NOT NULL,
  PRIMARY KEY (`profile_profile_id`, `profile_option_element_profile_option_element_id`, `profile_option_element_profile_option_id`),
  INDEX `fk_profile_has_profile_option_element_profile_option_elemen_idx` (`profile_option_element_profile_option_element_id` ASC, `profile_option_element_profile_option_id` ASC),
  INDEX `fk_profile_has_profile_option_element_profile1_idx` (`profile_profile_id` ASC),
  CONSTRAINT `fk_profile_has_profile_option_element_profile1`
    FOREIGN KEY (`profile_profile_id`)
    REFERENCES `fairtime`.`profile` (`profile_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_profile_has_profile_option_element_profile_option_element1`
    FOREIGN KEY (`profile_option_element_profile_option_element_id` , `profile_option_element_profile_option_id`)
    REFERENCES `fairtime`.`profile_option_element` (`profile_option_element_id` , `profile_option_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

--

Workbench 的架构是这样的:

这是 hibernate 中涉及的类:

配置文件.java:

--

package models.classes_hibernate;
// Generated 02/07/2014 10:54:27 by Hibernate Tools 3.6.0


import javax.persistence.*;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import static javax.persistence.GenerationType.IDENTITY;

/**
 * Profile generated by hbm2java
 */
@Entity
@Table(name="profile"
    ,catalog="fairtime"
)
public class Profile  implements java.io.Serializable {


     private Integer profileId;
     private AppUser appUser;
     private City city;
     private Date createdAt;
     private Date updatedAt;
     private String address;
     private String phone;
     private Set<ProfileHasCampaign> profileHasCampaigns = new HashSet<ProfileHasCampaign>(0);
     private Set<ProfileOptionElement> profileOptionElements = new HashSet<ProfileOptionElement>(0);
     private Set<Offer> offers = new HashSet<Offer>(0);

    public Profile() {
    }


    public Profile(AppUser appUser, City city, Date createdAt, String address, String phone) {
        this.appUser = appUser;
        this.city = city;
        this.createdAt = createdAt;
        this.address = address;
        this.phone = phone;
    }
    public Profile(AppUser appUser, City city, Date createdAt, Date updatedAt, String address, String phone, Set<ProfileHasCampaign> profileHasCampaigns, Set<ProfileOptionElement> profileOptionElements, Set<Offer> offers) {
       this.appUser = appUser;
       this.city = city;
       this.createdAt = createdAt;
       this.updatedAt = updatedAt;
       this.address = address;
       this.phone = phone;
       this.profileHasCampaigns = profileHasCampaigns;
       this.profileOptionElements = profileOptionElements;
       this.offers = offers;
    }

     @Id @GeneratedValue(strategy=IDENTITY)


    @Column(name="profile_id", unique=true, nullable=false)
    public Integer getProfileId() {
        return this.profileId;
    }

    public void setProfileId(Integer profileId) {
        this.profileId = profileId;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="app_user_id", nullable=false)
    public AppUser getAppUser() {
        return this.appUser;
    }

    public void setAppUser(AppUser appUser) {
        this.appUser = appUser;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="city_id", nullable=false)
    public City getCity() {
        return this.city;
    }

    public void setCity(City city) {
        this.city = city;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="created_at", nullable=false, length=19)
    public Date getCreatedAt() {
        return this.createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="updated_at", length=19)
    public Date getUpdatedAt() {
        return this.updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }


    @Column(name="address", nullable=false, length=45)
    public String getAddress() {
        return this.address;
    }

    public void setAddress(String address) {
        this.address = address;
    }


    @Column(name="phone", nullable=false, length=45)
    public String getPhone() {
        return this.phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="profile")
    public Set<ProfileHasCampaign> getProfileHasCampaigns() {
        return this.profileHasCampaigns;
    }

    public void setProfileHasCampaigns(Set<ProfileHasCampaign> profileHasCampaigns) {
        this.profileHasCampaigns = profileHasCampaigns;
    }

@ManyToMany(fetch=FetchType.LAZY)
    @JoinTable(name="profile_has_profile_option_element", catalog="fairtime", joinColumns = { 
        @JoinColumn(name="profile_profile_id", nullable=false, updatable=false) }, inverseJoinColumns = { 
        @JoinColumn(name="profile_option_element_profile_option_element_id", nullable=false, updatable=false) })
    public Set<ProfileOptionElement> getProfileOptionElements() {
        return this.profileOptionElements;
    }

    public void setProfileOptionElements(Set<ProfileOptionElement> profileOptionElements) {
        this.profileOptionElements = profileOptionElements;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="profile")
    public Set<Offer> getOffers() {
        return this.offers;
    }

    public void setOffers(Set<Offer> offers) {
        this.offers = offers;
    }




}

--

ProfileOptionElement.java:

--

package models.classes_hibernate;
// Generated 02/07/2014 10:54:27 by Hibernate Tools 3.6.0


import javax.persistence.*;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * ProfileOptionElement generated by hbm2java
 */
@Entity
@Table(name="profile_option_element"
    ,catalog="fairtime"
)
public class ProfileOptionElement  implements java.io.Serializable {


     private ProfileOptionElementId id;
     private AppUser appUser;
     private ProfileOption profileOption;
     private String name;
     private boolean hiddenForUser;
     private boolean hiddenForAdvertiser;
     private boolean hiddenForOffer;
     private String type;
     private boolean approved;
     private Date createdAt;
     private Boolean booleanValue;
     private Set<Profile> profiles = new HashSet<Profile>(0);
     private Set<TargetHasProfileOptionElement> targetHasProfileOptionElements = new HashSet<TargetHasProfileOptionElement>(0);

    public ProfileOptionElement() {
    }


    public ProfileOptionElement(ProfileOptionElementId id, ProfileOption profileOption, String name, boolean hiddenForUser, boolean hiddenForAdvertiser, boolean hiddenForOffer, boolean approved) {
        this.id = id;
        this.profileOption = profileOption;
        this.name = name;
        this.hiddenForUser = hiddenForUser;
        this.hiddenForAdvertiser = hiddenForAdvertiser;
        this.hiddenForOffer = hiddenForOffer;
        this.approved = approved;
    }
    public ProfileOptionElement(ProfileOptionElementId id, AppUser appUser, ProfileOption profileOption, String name, boolean hiddenForUser, boolean hiddenForAdvertiser, boolean hiddenForOffer, String type, boolean approved, Date createdAt, Boolean booleanValue, Set<Profile> profiles, Set<TargetHasProfileOptionElement> targetHasProfileOptionElements) {
       this.id = id;
       this.appUser = appUser;
       this.profileOption = profileOption;
       this.name = name;
       this.hiddenForUser = hiddenForUser;
       this.hiddenForAdvertiser = hiddenForAdvertiser;
       this.hiddenForOffer = hiddenForOffer;
       this.type = type;
       this.approved = approved;
       this.createdAt = createdAt;
       this.booleanValue = booleanValue;
       this.profiles = profiles;
       this.targetHasProfileOptionElements = targetHasProfileOptionElements;
    }

     @EmbeddedId


    @AttributeOverrides( {
        @AttributeOverride(name="profileOptionElementId", column=@Column(name="profile_option_element_id", nullable=false) ), 
        @AttributeOverride(name="profileOptionId", column=@Column(name="profile_option_id", nullable=false) ) } )
    public ProfileOptionElementId getId() {
        return this.id;
    }

    public void setId(ProfileOptionElementId id) {
        this.id = id;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="app_user_id")
    public AppUser getAppUser() {
        return this.appUser;
    }

    public void setAppUser(AppUser appUser) {
        this.appUser = appUser;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="profile_option_id", nullable=false, insertable=false, updatable=false)
    public ProfileOption getProfileOption() {
        return this.profileOption;
    }

    public void setProfileOption(ProfileOption profileOption) {
        this.profileOption = profileOption;
    }


    @Column(name="name", nullable=false)
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }


    @Column(name="hidden_for_user", nullable=false)
    public boolean isHiddenForUser() {
        return this.hiddenForUser;
    }

    public void setHiddenForUser(boolean hiddenForUser) {
        this.hiddenForUser = hiddenForUser;
    }


    @Column(name="hidden_for_advertiser", nullable=false)
    public boolean isHiddenForAdvertiser() {
        return this.hiddenForAdvertiser;
    }

    public void setHiddenForAdvertiser(boolean hiddenForAdvertiser) {
        this.hiddenForAdvertiser = hiddenForAdvertiser;
    }


    @Column(name="hidden_for_offer", nullable=false)
    public boolean isHiddenForOffer() {
        return this.hiddenForOffer;
    }

    public void setHiddenForOffer(boolean hiddenForOffer) {
        this.hiddenForOffer = hiddenForOffer;
    }


    @Column(name="type", length=45)
    public String getType() {
        return this.type;
    }

    public void setType(String type) {
        this.type = type;
    }


    @Column(name="approved", nullable=false)
    public boolean isApproved() {
        return this.approved;
    }

    public void setApproved(boolean approved) {
        this.approved = approved;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="created_at", length=19)
    public Date getCreatedAt() {
        return this.createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }


    @Column(name="boolean_value")
    public Boolean getBooleanValue() {
        return this.booleanValue;
    }

    public void setBooleanValue(Boolean booleanValue) {
        this.booleanValue = booleanValue;
    }

@ManyToMany(fetch=FetchType.LAZY)
    @JoinTable(name="profile_has_profile_option_element", catalog="fairtime", joinColumns = { 
        @JoinColumn(name="profile_option_element_profile_option_element_id", nullable=false, updatable=false), 
        @JoinColumn(name="profile_option_element_profile_option_id", nullable=false, updatable=false) }, inverseJoinColumns = { 
        @JoinColumn(name="profile_profile_id", nullable=false, updatable=false) })
    public Set<Profile> getProfiles() {
        return this.profiles;
    }

    public void setProfiles(Set<Profile> profiles) {
        this.profiles = profiles;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="profileOptionElement")
    public Set<TargetHasProfileOptionElement> getTargetHasProfileOptionElements() {
        return this.targetHasProfileOptionElements;
    }

    public void setTargetHasProfileOptionElements(Set<TargetHasProfileOptionElement> targetHasProfileOptionElements) {
        this.targetHasProfileOptionElements = targetHasProfileOptionElements;
    }




}

--

配置文件选项.java:

--

package models.classes_hibernate;
// Generated 02/07/2014 10:54:27 by Hibernate Tools 3.6.0


import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;

import static javax.persistence.GenerationType.IDENTITY;

/**
 * ProfileOption generated by hbm2java
 */
@Entity
@Table(name="profile_option"
    ,catalog="fairtime"
)
public class ProfileOption  implements java.io.Serializable {


     private Integer profileOptionId;
     private String name;
     private boolean hiddenForUser;
     private boolean hiddenForAdvertiser;
     private boolean hiddenForOffer;
     private String type;
     private Boolean isUniqueForProfile;
     private Boolean isUniqueForTarget;
     private Set<Offer> offers = new HashSet<Offer>(0);
     private Set<ProfileOptionElement> profileOptionElements = new HashSet<ProfileOptionElement>(0);

    public ProfileOption() {
    }


    public ProfileOption(String name, boolean hiddenForUser, boolean hiddenForAdvertiser, boolean hiddenForOffer) {
        this.name = name;
        this.hiddenForUser = hiddenForUser;
        this.hiddenForAdvertiser = hiddenForAdvertiser;
        this.hiddenForOffer = hiddenForOffer;
    }
    public ProfileOption(String name, boolean hiddenForUser, boolean hiddenForAdvertiser, boolean hiddenForOffer, String type, Boolean isUniqueForProfile, Boolean isUniqueForTarget, Set<Offer> offers, Set<ProfileOptionElement> profileOptionElements) {
       this.name = name;
       this.hiddenForUser = hiddenForUser;
       this.hiddenForAdvertiser = hiddenForAdvertiser;
       this.hiddenForOffer = hiddenForOffer;
       this.type = type;
       this.isUniqueForProfile = isUniqueForProfile;
       this.isUniqueForTarget = isUniqueForTarget;
       this.offers = offers;
       this.profileOptionElements = profileOptionElements;
    }

     @Id @GeneratedValue(strategy=IDENTITY)


    @Column(name="profile_option_id", unique=true, nullable=false)
    public Integer getProfileOptionId() {
        return this.profileOptionId;
    }

    public void setProfileOptionId(Integer profileOptionId) {
        this.profileOptionId = profileOptionId;
    }


    @Column(name="name", nullable=false)
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }


    @Column(name="hidden_for_user", nullable=false)
    public boolean isHiddenForUser() {
        return this.hiddenForUser;
    }

    public void setHiddenForUser(boolean hiddenForUser) {
        this.hiddenForUser = hiddenForUser;
    }


    @Column(name="hidden_for_advertiser", nullable=false)
    public boolean isHiddenForAdvertiser() {
        return this.hiddenForAdvertiser;
    }

    public void setHiddenForAdvertiser(boolean hiddenForAdvertiser) {
        this.hiddenForAdvertiser = hiddenForAdvertiser;
    }


    @Column(name="hidden_for_offer", nullable=false)
    public boolean isHiddenForOffer() {
        return this.hiddenForOffer;
    }

    public void setHiddenForOffer(boolean hiddenForOffer) {
        this.hiddenForOffer = hiddenForOffer;
    }


    @Column(name="type", length=45)
    public String getType() {
        return this.type;
    }

    public void setType(String type) {
        this.type = type;
    }


    @Column(name="is_unique_for_profile")
    public Boolean getIsUniqueForProfile() {
        return this.isUniqueForProfile;
    }

    public void setIsUniqueForProfile(Boolean isUniqueForProfile) {
        this.isUniqueForProfile = isUniqueForProfile;
    }


    @Column(name="is_unique_for_target")
    public Boolean getIsUniqueForTarget() {
        return this.isUniqueForTarget;
    }

    public void setIsUniqueForTarget(Boolean isUniqueForTarget) {
        this.isUniqueForTarget = isUniqueForTarget;
    }

@ManyToMany(fetch=FetchType.LAZY)
    @JoinTable(name="offer_has_profile_option", catalog="fairtime", joinColumns = { 
        @JoinColumn(name="profile_option_profile_option_id", nullable=false, updatable=false) }, inverseJoinColumns = { 
        @JoinColumn(name="offer_offer_id", nullable=false, updatable=false) })
    public Set<Offer> getOffers() {
        return this.offers;
    }

    public void setOffers(Set<Offer> offers) {
        this.offers = offers;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="profileOption")
    public Set<ProfileOptionElement> getProfileOptionElements() {
        return this.profileOptionElements;
    }

    public void setProfileOptionElements(Set<ProfileOptionElement> profileOptionElements) {
        this.profileOptionElements = profileOptionElements;
    }




}

--

当我尝试使用 hibernate 时,出现以下异常:

Unexpected exception[PersistenceException: [PersistenceUnit: fairtimePersistenceUnit] Unable to build Hibernate SessionFactory]

Caused by: org.hibernate.AnnotationException: A Foreign key refering models.classes_hibernate.ProfileOptionElement from models.classes_hibernate.Profile has the wrong number of column. should be 2

我找不到问题,在此先感谢您的帮助

最佳答案

关系表profile_has_profile_option_element具有多个引用配置文件选项元素的外键,这导致生成的类引用此表的条目而不是引用 profile 中的项目以多对多的方式,这就是我认为你想要的。要删除额外的外键字段,请更改 profile_option 之间的关系和 profile_option_element非识别,然后重新创建与 profile 的多对多关系

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

    CREATE SCHEMA IF NOT EXISTS `fairtime` ;
    USE `fairtime` ;

    -- -----------------------------------------------------
    -- Table `fairtime`.`profile`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `fairtime`.`profile` (
      `profile_id` INT(11) NOT NULL AUTO_INCREMENT,
      `created_at` DATETIME NOT NULL,
      `updated_at` DATETIME NULL DEFAULT NULL,
      `app_user_id` INT(11) NOT NULL,
      `address` VARCHAR(45) NOT NULL,
      `phone` VARCHAR(45) NOT NULL,
      `city_id` INT(11) NOT NULL,
      PRIMARY KEY (`profile_id`),
      INDEX `fk_profile_app_user1_idx` (`app_user_id` ASC),
      INDEX `fk_profile_city1_idx` (`city_id` ASC),
      CONSTRAINT `fk_profile_app_user1`
        FOREIGN KEY (`app_user_id`)
        REFERENCES `fairtime`.`app_user` (`app_user_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION,
      CONSTRAINT `fk_profile_city1`
        FOREIGN KEY (`city_id`)
        REFERENCES `fairtime`.`city` (`city_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = utf8;


    -- -----------------------------------------------------
    -- Table `fairtime`.`profile_option`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `fairtime`.`profile_option` (
      `profile_option_id` INT(11) NOT NULL AUTO_INCREMENT,
      `name` VARCHAR(255) NOT NULL,
      `hidden_for_user` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
      `hidden_for_advertiser` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
      `hidden_for_offer` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
      `type` VARCHAR(45) NULL DEFAULT NULL,
      `is_unique_for_profile` TINYINT(1) NULL DEFAULT '0',
      `is_unique_for_target` TINYINT(1) NULL DEFAULT '0',
      PRIMARY KEY (`profile_option_id`))
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = utf8;


    -- -----------------------------------------------------
    -- Table `fairtime`.`profile_option_element`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `fairtime`.`profile_option_element` (
      `profile_option_element_id` INT(11) NOT NULL AUTO_INCREMENT,
      `profile_option_id` INT(11) NOT NULL,
      `name` VARCHAR(255) NOT NULL,
      `hidden_for_user` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
      `hidden_for_advertiser` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
      `hidden_for_offer` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Specify if a target option is readable by Advertiser interface or not',
      `type` VARCHAR(45) NULL,
      `app_user_id` INT(11) NULL DEFAULT NULL COMMENT 'When a user creates a brand in their MyFairTime',
      `approved` TINYINT(1) NOT NULL DEFAULT '0',
      `created_at` DATETIME NULL,
      `boolean_value` TINYINT(1) NULL DEFAULT NULL,
      PRIMARY KEY (`profile_option_element_id`),
      INDEX `fk_profile_option_element_app_user1_idx` (`app_user_id` ASC),
      INDEX `fk_profile_option_element_profile_option1_idx` (`profile_option_id` ASC),
      CONSTRAINT `fk_profile_option_element_app_user1`
        FOREIGN KEY (`app_user_id`)
        REFERENCES `fairtime`.`app_user` (`app_user_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION,
      CONSTRAINT `fk_profile_option_element_profile_option1`
        FOREIGN KEY (`profile_option_id`)
        REFERENCES `fairtime`.`profile_option` (`profile_option_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB;


    -- -----------------------------------------------------
    -- Table `fairtime`.`profile_has_profile_option_element`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `fairtime`.`profile_has_profile_option_element` (
      `profile_profile_id` INT(11) NOT NULL,
      `profile_option_element_profile_option_element_id` INT(11) NOT NULL,
      PRIMARY KEY (`profile_profile_id`, `profile_option_element_profile_option_element_id`),
      INDEX `fk_profile_has_profile_option_element_profile_option_elemen_idx` (`profile_option_element_profile_option_element_id` ASC),
      INDEX `fk_profile_has_profile_option_element_profile1_idx` (`profile_profile_id` ASC),
      CONSTRAINT `fk_profile_has_profile_option_element_profile1`
        FOREIGN KEY (`profile_profile_id`)
        REFERENCES `fairtime`.`profile` (`profile_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION,
      CONSTRAINT `fk_profile_has_profile_option_element_profile_option_element1`
        FOREIGN KEY (`profile_option_element_profile_option_element_id`)
        REFERENCES `fairtime`.`profile_option_element` (`profile_option_element_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = utf8;


    SET SQL_MODE=@OLD_SQL_MODE;
    SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
    SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

不幸的是我没有足够的代表来张贴图片

关于java - 无法构建 Hibernate SessionFactory,由 : org. hibernate.AnnotationException 引起:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24548613/

有关java - 无法构建 Hibernate SessionFactory,由 : org. hibernate.AnnotationException 引起:的更多相关文章

  1. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  4. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  7. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  8. ruby - 无法覆盖 irb 中的 to_s - 2

    我在pry中定义了一个函数:to_s,但我无法调用它。这个方法去哪里了,怎么调用?pry(main)>defto_spry(main)*'hello'pry(main)*endpry(main)>to_s=>"main"我的ruby版本是2.1.2看了一些答案和搜索后,我认为我得到了正确的答案:这个方法用在什么地方?在irb或pry中定义方法时,会转到Object.instance_methods[1]pry(main)>defto_s[1]pry(main)*'hello'[1]pry(main)*end=>:to_s[2]pry(main)>defhello[2]pry(main)

  9. ruby - 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1 :7055) - 2

    我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类

  10. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

随机推荐