当前位置: 首页 > 知识库问答 >
问题:

类“AppBundle\Entity\Organization”不是有效的实体或映射的超类

饶德本
2023-03-14

我想用条令可视化数据库中的数据,但它似乎不起作用。。。

这是我的班级组织机构:

<?php
 namespace AppBundle\Entity;

 use Doctrine\ORM\Mapping as ORM;

/**Class Organization
 * @package AppBundle\Entity
 *
 * @ORM\Table(name="organization")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\
 * OrganizationRepository")
 *
 */
 class Organization
 {

/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;


/**
 * @var string
 * @ORM\Column(name="name", type="string", length=45)
 *
 */
protected $name;




/**
 * @return int
 */
public function getId()
{
    return $this->id;
}

/**
 * @param int $id
 */
public function setId($id)
{
    $this->id = $id;
}

/**
 * @return string
 */
public function getName()
{
    return $this->name;
}

/**
 * @param string $name
 */
public function setName($name)
{
    $this->name = $name;
}

}

以下是错误:

条令\ORM\Mapping\MappingException:类“AppBundle\Entity\Organization”不是有效的实体或映射的超类。

供应商/条令/orm/lib/条令/orm/MappingException。php:346 at Doctrine\ORM\Mapping\MappingException::ClassisNotValidityOrmappedSuperClass('AppBundle\Entity\Organization')(vendor/Doctrine/ORM/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php:91)at Doctrine\ORM\Mapping\Driver\AnnotationDriver-

我有OrganizationControllerOrganizationRepository

共有2个答案

丌官晔
2023-03-14
  1. 您应该检查php文件名。您是否知道实体文件名是组织。php
  2. 您应该删除代码中的setId()方法(它不会解决您的问题,但不能使用此方法)。因为$id是自动生成的

删除此项:

 /**
  * @param int $id
  */
  public function setId($id)
  {
       $this->id = $id;
  }
顾高翰
2023-03-14

将类名注释移动到下一行或在其前面留出空间,如下所示

/**
 * Class Organization
 * @package AppBundle\Entity
 *
 * @ORM\Table(name="organization")
 * 
 * @ORM\Entity(repositoryClass="AppBundle\Repository\OrganizationRepository")
 */
 类似资料:
  • 带Neo4J的Spring boot 2.0.3。 如果我用大写字母创建一个实体包名,如,它会给我一个错误消息,如 但是如果我用定义实体类,它就能工作。 大写字母包装是不是只允许实体包装??

  • 是否有可能不在HiberNate中的实体层次结构中间为类创建表? 我想指出某些实体是某种类型的子集,以便返回所有这些实体的集合,但我不会在此中间类型中放置任何额外的属性。因此,保留带有id字段的额外表只是为了连接表,这听起来并不好。 更好的解决方案是实现一些公共接口< code>CommonInterface,但是这样我就失去了返回< code>List的可能性

  • 问题内容: 我想知道是什么样的区别和当一个人想要从一个超类派生。我知道这不会在数据库中为表创建表。我在doc中读到 “抽象实体就像具体实体,但是无法实例化” 。由于无法实例化它们,因此我推断数据库中 没有匹配的表 。我对吗? 如果是这样,使用a 和an 之间实际上有什么区别,并且在每种情况下对软件和数据库有什么影响? 问题答案: MappedSuper类将继承用于字段和代码的重用。例如,如果您希望

  • 我希望以以下方式映射实体: 我有一个用户,他买了一辆车(特定的品牌、型号和变体)。 为此,我创建了以下类。 Car.java汽车 CarModel.java 汽车变体.java 最后,用户.java 现在,我的问题是。 在现实生活中,用户可能拥有许多汽车,每辆汽车都有特定的品牌、型号和变体。我想用JPA / Hibernate实现这样的功能。 我可以定义与和的关系。在这种情况下,如果我执行或我最终

  • 我有一个JSP登录页面,可以调用login action类。我使用的是Struts注释,而不是到映射,一切正常。我随机尝试了一些新东西,所以我从action类和struts中删除了所有注释。xml还没有映射到我的

  • 我有一个实体Person,它由name属性组成 我不想在一个额外的表中存储“name”...我将name标记为transient,这样它就不会存储在基础数据库中。 我想要的是将属性“name”映射到数据库中的列“first_name”和“last_name”。 例如,我可以像那样创建一个人 如何实现映射,使基础表包含两个附加列first_name和last_name,内容是从name属性获得的字符