- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
几天来,我遇到了一个 Doctrine 实体的小问题。我在两个字段上使用 UniqueConstraint 定义它,然后在这两个字段上使用 UniqueEntity 验证。但是在通过添加一个已经在 base 中的实体来验证我的表单之后,无法在我的表单中获取我的错误消息。
只是来自 Symfony 的错误消息:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '339057986-00012' for key 'SIRET'
<?php
namespace Proetco\FrontBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Proetco\FrontBundle\Entity\Entreprise
*
* @ORM\Table(name="entreprise", uniqueConstraints={@ORM\UniqueConstraint(name="SIRET", columns={"SIREN", "NIC"})})
* @ORM\Entity(repositoryClass="Proetco\FrontBundle\Entity\EntrepriseRepository")
* @UniqueEntity(fields={"SIREN","NIC"}, message="Cette entreprise est déjà enregistrée")
*/
class Entreprise {
protected $Siret;
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $SIREN
*
* @ORM\Column(name="SIREN", type="string", length=9)
*/
private $SIREN;
/**
* @var string $NIC
*
* @ORM\Column(name="NIC", type="string", length=5)
*/
private $NIC;
/**
* @var string $RS
*
* @ORM\Column(name="RS", type="string", length=45, nullable=true)
*/
private $RS;
/**
* @var string $NCOM
*
* @ORM\Column(name="NCOM", type="string", length=45, nullable=true)
*/
private $NCOM;
/**
* @var string $CPOS
*
* @ORM\Column(name="CPOS", type="string", length=5, nullable=true)
*/
private $CPOS;
/**
* @var string $LCOM
*
* @ORM\Column(name="LCOM", type="string", length=45, nullable=true)
*/
private $LCOM;
/**
* @var string $INSEE
*
* @ORM\Column(name="INSEE", type="string", length=5, nullable=true, nullable=true)
*/
private $INSEE;
/**
* @var string $DEP
*
* @ORM\Column(name="DEP", type="string", length=2)
*/
private $DEP;
/**
* @var string $ARR
*
* @ORM\Column(name="ARR", type="string", length=1, nullable=true)
*/
private $ARR;
/**
* @var string $CAN
*
* @ORM\Column(name="CAN", type="string", length=2, nullable=true)
*/
private $CAN;
public function getSiret()
{
return $this->Siret;
}
public function setSiret($Siret)
{
$this->Siret = $Siret;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set SIREN
*
* @param string $sIREN
*/
public function setSIREN($sIREN)
{
$this->SIREN = $sIREN;
}
/**
* Get SIREN
*
* @return string
*/
public function getSIREN()
{
return $this->SIREN;
}
/**
* Set NIC
*
* @param string $nIC
*/
public function setNIC($nIC)
{
$this->NIC = $nIC;
}
/**
* Get NIC
*
* @return string
*/
public function getNIC()
{
return $this->NIC;
}
/**
* Set RS
*
* @param string $rS
*/
public function setRS($rS)
{
$this->RS = $rS;
}
/**
* Get RS
*
* @return string
*/
public function getRS()
{
return $this->RS;
}
/**
* Set NCOM
*
* @param string $nCOM
*/
public function setNCOM($nCOM)
{
$this->NCOM = $nCOM;
}
/**
* Get NCOM
*
* @return string
*/
public function getNCOM()
{
return $this->NCOM;
}
/**
* Set CPOS
*
* @param string $cPOS
*/
public function setCPOS($cPOS)
{
$this->CPOS = $cPOS;
}
/**
* Get CPOS
*
* @return string
*/
public function getCPOS()
{
return $this->CPOS;
}
/**
* Set LCOM
*
* @param string $lCOM
*/
public function setLCOM($lCOM)
{
$this->LCOM = $lCOM;
}
/**
* Get LCOM
*
* @return string
*/
public function getLCOM()
{
return $this->LCOM;
}
/**
* Set INSEE
*
* @param string $iNSEE
*/
public function setINSEE($iNSEE)
{
$this->INSEE = $iNSEE;
}
/**
* Get INSEE
*
* @return string
*/
public function getINSEE()
{
return $this->INSEE;
}
/**
* Set DEP
*
* @param string $dEP
*/
public function setDEP($dEP)
{
if (!isset($this->DEP))
$this->DEP = '02';
$this->DEP = $dEP;
}
/**
* Get DEP
*
* @return string
*/
public function getDEP()
{
if (!isset($this->DEP))
$this->DEP = '02';
return $this->DEP;
}
/**
* Set ARR
*
* @param string $aRR
*/
public function setARR($aRR)
{
$this->ARR = $aRR;
}
/**
* Get ARR
*
* @return string
*/
public function getARR()
{
return $this->ARR;
}
/**
* Set CAN
*
* @param string $cAN
*/
public function setCAN($cAN)
{
$this->CAN = $cAN;
}
/**
* Get CAN
*
* @return string
*/
public function getCAN()
{
return $this->CAN;
}
public function retrieveSiren($siret)
{
return substr($siret, 0, 9);
}
public function retrieveNic($siret)
{
return substr($siret, -5, 5);
}
//contraintes de validation
//TODO : valider les champs avec Regex
public function isSIREN()
{
}
public function isNIC()
{
}
}
最佳答案
在这里回复已经太晚了,但仍然回复以便它可以帮助其他陷入同样问题的人。
两件事情
fields={"SIREN","NIC"}
这意味着它们在一起是独一无二的,但您可能希望它们单独独一无二 https://symfony.com/doc/current/validation.html#using-the-validator-service
, uniqueConstraints={@ORM\UniqueConstraint(name="SIRET", columns={"SIREN", "NIC"})}
来自
@ORM/Table
注释(因为不需要 UniqueConstraint,除非您想从实体中生成模式定义)
<?php
namespace Proetco\FrontBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Proetco\FrontBundle\Entity\Entreprise
*
* @ORM\Table(name="entreprise")
* @ORM\Entity(repositoryClass="Proetco\FrontBundle\Entity\EntrepriseRepository")
* @UniqueEntity(fields={"SIREN","NIC"}, message="Cette entreprise est déjà enregistrée")
*/
class Entreprise {
/**
* Body of entity
*/
}
fields={"SIREN","NIC"}
这意味着您希望这两列一起是唯一的
UniqueEntity
/**
* @ORM\Table(name="entreprise")
* @ORM\Entity(repositoryClass="Proetco\FrontBundle\Entity\EntrepriseRepository")
* @UniqueEntity(fields={"SIREN"}, message="Cette entreprise est déjà enregistrée")
* @UniqueEntity(fields={"NIC"}, message="Cette entreprise est déjà enregistrée")
*/
关于Symfony2 UniqueConstraint 和 UniqueEntity(违反完整性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11115849/
在我的 Spring/hibernate 项目中,我使用 uniqueConstraints = {@UniqueConstraint(columnNames={"ID_A", "ID_B"})} 来
我有一个 Product 实体,它的 name 和 category 组合对于每个产品都应该是唯一的。 在我的例子中,name 是必需的,但 category 可能不存在。 Product 定义如下:
这个问题已经有答案了: What does JPA @UniqueConstraint do in Hibernate? (1 个回答) 已关闭 6 年前。 在以下实体中,我想在数据库中进行唯一的写入
一个快速的 SQLAlchemy 问题... 我有一个类“Document”,其属性为“Number”和“Date”。我需要确保同一年没有重复的数字,是有没有办法在“数字 + 年(日期)”上设置 Un
使用以下模型,为什么以下交互在同一事务中成功地向关系添加重复关联?我预计(并且需要)它会因关联表上放置的 UniqueConstraint 而失败。 模型: from app import db #
我有一个对 3 个字段具有唯一约束的实体。 2 个字段不可为空,第三个字段可为空。 我的问题是,当第三个字段为空时,唯一约束不起作用,因此我的数据库中可以有一些重复的值,例如 (5,1,null)(5
我有一个数据模型,其中许多实体从单个父类(super class)实体继承一些公共(public)属性。我在父类(super class)上使用 InheritanceType.JOINED ,这会导
您能否澄清一下此注释的实际用途? - 如果我们没有使用数据库中的 SQL 表定义定义相应的约束,会发生什么情况。当我们尝试插入时,hibernate 会检查唯一性吗?或者这就是DB的目的吗?如果 hi
在 Spring JPA 中,我有一个实体,并使用 FlywayDb 初始化架构。我的实体是: @Entity @Table(schema = "scheduler", uniqueC
我刚开始在 C# 上使用 db4o,但在设置数据库上的 UniqueConstraint 时遇到了问题。 这是 db4o 配置 static IObjectContainer db = Db4oEmb
我有一个注释如下的实体: @Entity @Table(uniqueConstraints={@UniqueConstraint(columnNames={"name"})}) public clas
我只是想获得有关此导入的解释,我一直在寻找一些好的解释,但找不到。 javax.persistence.UniqueConstraint http://www.mkyong.com/hibernate
我正在为我的 django 应用程序 SrdObject 创建一个抽象模型。我的模型的特征之一是它有一对字段,它们放在一起必须是唯一的:“name”和外键“module”。 这是我的一个例子 clas
几天来,我遇到了一个 Doctrine 实体的小问题。我在两个字段上使用 UniqueConstraint 定义它,然后在这两个字段上使用 UniqueEntity 验证。但是在通过添加一个已经在 b
我正在尝试通过下一种方式在 Flask-SQLAlchemy 的父类中添加唯一约束。如您所见,继承以 Joined Table 方式表示。 class Parametric(object, Model
我想将 UniqueConstraint 与 flask_sqlalchemy 一起使用 不幸的是,这个导入语句: from flask_sqlalchemy import SQLAlchemy, U
校园有@OneToMany 大楼 大楼有@OneToMany 房间。 房间名称在校园内必须是唯一的 (例如校园-A,A座,A室和校园-B,A座,A室应该可以存储) 是否可以在 Room 实体上定义这样
处理一些遗留的 hibernate 代码。 如何使用 hbm.xml( hibernate 映射文件)而不是注释来执行以下操作? @Table(name="users", uniqueConstrai
我有这个代码: @Table(uniqueConstraints = @UniqueConstraint(columnNames = {"name", "color"})) @MappedSuperc
我有一个类使用单表策略(我无法更改)扩展现有实体。我想对该实体使用 UniqueConstraint,所以我尝试了: @Entity @Table(name = "t_document") publi
我是一名优秀的程序员,十分优秀!