我更新了实体文件以包含关系映射。
namespace classes\classBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * advisersplans * * @ORM\Table() * @ORM\Entity */ class advisersPlans { /** * * @ORM\ManyToOne(targetEntity="plans", inversedBy="adviserPlans") * @ORM\JoinColumn(name="planid", referencedColumnName="id") */ public $plan; /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ public $id; /** * @var integer * * @ORM\Column(name="userid", type="integer") * * */ public $userid; /** * @var integer * * @ORM\Column(name="adviserid", type="integer") * * */ public $adviserid; /** * @var integer * * @ORM\Column(name="planid", type="integer") * * */ public $planid; /** * @var string * * @ORM\Column(name="participantLoginWebsiteAddress", type="string", length=255) */ public $participantLoginWebsiteAddress; public function __construct() { $class_vars = get_class_vars(get_class($this)); foreach ($class_vars as $key => $value) { if ($key != "plan") $this->$key = ""; } } }
/** * * @ORM\ManyToOne(targetEntity="plans", inversedBy="adviserPlans") * @ORM\JoinColumn(name="planid", referencedColumnName="id") */
$adviserPlan = new advisersPlans(); $adviserPlan->planid = $planid; $adviserPlan->userid = $this->userid(); $adviserPlan->adviserid = $session->get("editadviserid"); $em->persist($adviserPlan);
你不应该设置ID。您应该设置实体:
$adviserPlan = new advisersPlans();
// You should retrieve the plan before doing this, of course.
$adviserPlan->setPlan($plan);
$plans->addAdviserPlan(§adviserPlan);
$em->persist($adviserPlan);
将实体添加到集合中的方法应该在运行时根据原则生成:
php app/console doctrine:generate:entities YourBundle
情况: 我有两个与OneTomany/ManyToone关系相关的实体。 想象一下,每个类也有一个名为id和getter和setter的PK。 问题: 如果我创建一个EntityA实例并设置一个与已经存在的EntityB实例的关系并持久化这个新实例,那么所有数据都会正确地保存到数据库中。但是,如果我从我的EntityManager请求EntityB的实例,它的列表中将不包含刚刚持久化的Entity
我需要使用JPA存储一个复杂的树状对象结构。 有一个“顶级”类A,因此我可以在其上执行CASCADE. ALL,但我对类B的子对象和HashMap字段有问题。 映射的“键”是对象本身的哈希代码,存储为“值”。 当我级联持久化一个对象B时,数据库中的“键”列总是“null”(为什么?),即使对象有一些键值对。 我尝试了@MapKey之类的方法,但当我稍后从数据库加载对象时,键值不再是hashcode
是否可以在每个实体的基础上实施条令2中的自定义水合作用和持久性? 原则2对价值对象(如集合和ID)有一些主要限制。我想知道是否可以使用自定义机制(或实现)将对象属性映射到数据库(加载和持久化)。 我知道有一些可能“解决”这个问题,但我不喜欢其中任何一个: 伪实体需要在实体中正确处理,从而将持久性层泄漏到域对象中 我知道条令中的生命周期事件可能是有用的。我无法确定postLoad事件是否携带一个已经
我想使用Hibernate(4.3.6 Final)持久化一个以基本类型为键、非实体可嵌入复合类型值为值的映射。 我没有任何问题的基本类型作为键和值,我做了所有的方式一样,这是好的。当我将map值更改为可嵌入复合类型时遇到了问题,如下所示。 但我得到了错误: 原因:com.mysql.jdbc.exceptions.jdbc4.mysqlSyntaxerrorexception:“field li
问题内容: 我正在尝试为各个字段使用不同的分析器设置ElasticSearch索引。但是,我似乎找不到一种设置特定于字段的分析器的方法。这是我创建(测试)索引的方法: 如果我正确阅读了文档,则应创建类型为“ tweet”的索引“ twitter”,并且应通过雪球词根分析器分析“ message”字段的内容。为了对此进行测试,我尝试了以下查询: 如果我没记错的话,那应该会受到打击,因为战斗是战斗的源
我已经定义了对象HomeContentDTO和SubscriberUpsertDTO的映射 下面是这两个对象的映射配置 HomeContentDTO中的所有映射值都没有复制到SubscriberUpsertDTO。有人知道原因吗?