我对 django 相当熟练,并尝试在 Intranet 项目中使用模型表单。
本质上,我有一个“资源”模型,由另一个团队填充。第二种模型是“Intake”,用户提交资源请求。它与资源具有一对一的映射。
目标是每次摄入仅允许 1 次资源分配。
现在,摄入模型表单显示了该表单,其中有一个资源下拉字段,但需要注意的是,它显示了所有资源,无论以前是否分配。
前任。如果资源被摄入占用,保存按钮检测到不允许保存。这是预期的,但下拉列表首先不应显示该资源。
我该如何做到这一点,即不显示已分配的资源?
class Resource(models.Model):
label = models.CharField(max_length=50, primary_key=True)
created = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey('auth.User', default=1)
class Meta:
verbose_name_plural = "Resource Pool"
def __str__(self):
return self.label
class Intake(models.Model):
order_id = models.AutoField(primary_key=True)
requestor = models.ForeignKey('auth.User', default=1)
resource = models.OneToOneField(Resource, verbose_name="Allocation")
project = models.CharField(max_length=50)
class Meta:
verbose_name_plural = "Environment Request"
def __str__(self):
print("self called")
return self.project
Run Code Online (Sandbox Code Playgroud)
当我想要与 tabble 建立 OneToOne 关系时:NewUser 到 CreateBill 我遇到异常:
Exception in thread "main" org.hibernate.AnnotationException: Unknown mappedBy in: domain.CreateBill.user, referenced property unknown: domain.NewUser.user
在开关中,无论我点击“E”还是“N”,我都会遇到这个异常......
第一类与NewUser,主要是get/set
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name="Urzytkownik")
public class NewUser {
@Id
@GeneratedValue
private long id;
private String name;
private String surName;
private int pesel; // s08
private int telephoneNumber;
private int pin;
@OneToOne
private CreateBill bill;
public int getPin() {
return pin;
}
public void setPin(int pin) {
this.pin = pin; …Run Code Online (Sandbox Code Playgroud) 我正在尝试与共享 PK 建立一对一的关系,但是在尝试了很多事情之后我陷入了困境......
我会尽量提供所有可能的信息:
我正在使用的技术:
数据源配置:
spring.datasource.url = jdbc:mysql://localhost:3306/customers?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true&useSSL=false
spring.datasource.username = admin
spring.datasource.password = root
spring.jpa.database-platform = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql = true
Run Code Online (Sandbox Code Playgroud)
数据库模型:
@Getter
@Setter
@NoArgsConstructor
@Entity
@Table(name = "customer", schema = "customers")
public class Customer {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(name = "customer_id", columnDefinition = "BINARY(16)")
private UUID customerId;
@OneToOne(mappedBy = "customer", cascade = CascadeType.ALL)
private Address address;
}
@Getter
@Setter
@NoArgsConstructor
@Entity
@Table(name = "address", schema …Run Code Online (Sandbox Code Playgroud) 我想在 Entity Framework Core 中创建一对零或一对一的引用/父子关系。我的意思是我的实体可以有一个父级:
public class MyEntity
{
public Guid Id { get; set; }
public Guid? ParentEntityId { get; set; }
public MyEntity ParentEntity { get; set; }
public MyEntity ChildEntity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过 Fluent api 配置它:
entity.HasOne(x => x.ParentEntity)
.WithOne(x => x.ChildEntity)
.HasForeignKey( .... )
Run Code Online (Sandbox Code Playgroud)
我不明白我必须在最后一行写什么。我也不确定我的实体是否正确。
有人可以帮我吗?
编辑:这个问题不能解决我的问题:实体框架中的自引用/父子关系 我的问题是关于创建外键。此行不起作用:
.HasForeignKey(x => x.ParentEntityId)
Run Code Online (Sandbox Code Playgroud)
HasForeignKey需要输入一个字符串。
1)表格可以与多个表格保持一对一的关系!
为了澄清更多,如果我想进行插入,第一个表将受到影响,其他表中只有一个会受到影响.
2)如果是这样,主键将如何?
3)此外,如果我想从这些表中检索大量记录,查询会是什么样子?
谢谢 .
假设我有人
class Person{
@Id Integer id;
@OneToOne
@JoinColumn(name = "person_id")
Job myJob;
}
Run Code Online (Sandbox Code Playgroud)
和约伯
class Job{
@Id Integer id;
Integer person_id;
@OneToOne
@PrimaryKeyJoinColumn(name = "person_id")
Person currentWorker;
}
Run Code Online (Sandbox Code Playgroud)
在获取时,我无法将Person和Job映射到其他实体.
我做错了什么?
这是一个实体(EDITED:完整文件内容)
// Eve\MoonBundle\Entity\MoonMaterial.php
namespace Eve\MoonBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
//use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Table(name="_moon_material")
* @ORM\Entity()
*/
class MoonMaterial
{
public function __construct()
{
//$this->invTypes_byTypeID = new ArrayCollection();
}
// relations start
/**
* @ORM\OneToOne(targetEntity="Eve\DumpBundle\Entity\invTypes")
* @ORM\JoinColumn(name="typeID", referencedColumnName="typeID")
*/
private $invTypes_byTypeID;
public function get_invTypes_byTypeID()
{
return $this->invTypes_byTypeID;
}
// relations end
/**
* @ORM\Column(name="userID", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $userID;
/**
* @ORM\Column(name="moonID", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $moonID;
/**
* @ORM\Column(name="typeID", …Run Code Online (Sandbox Code Playgroud) 我有一个用户表和user_detail一对一映射user_detail表的表有一个字段user_id用于这个关系存储相应用户的id字段值.
如何hbm为这种关系编写hibernate 文件?
UPDATE
我的问题是用户的主键是iduser_detail的外键是什么user_id
我在互联网用户中获得的所有示例user_id作为用户主键,与其他表中的外键相同
我很难用Fluent NHibernate开发HasOne映射.基本上,A类可以在B类中具有匹配(仅一个或没有)记录.
请帮助定义关系的AMap和BMap类.
谢谢.
public class A
{
public virtual int Id {get;set;}
public virtual string P1 {get;set;}
public virtual string P2 {get;set;}
public virtual string P3 {get;set;}
}
public class B
{
public virtual int Id {get;set;}
public virtual string P4 {get;set;}
public virtual string P5 {get;set;}
public virtual string P6 {get;set;}
}
Run Code Online (Sandbox Code Playgroud) 在EF Code First中,我们可以通过这样的编码来创建一对一的关系:
public class User
{
public int UserID {get;set;}
public string Name {get;set;}
public int UserDetailID {get;set;}
public UserDetail Detail {get;set;}
}
public class UserDetail
{
public int UserDetailID {get;set;}
public string Address {get;set:}
public int UserID {get;set;}
public User User {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在Visual Studio 2012中首先使用EF数据库创建相同的关系时,我遇到了麻烦.这是我的代码:
CREATE TABLE [dbo].[Users] (
[UserID] UNIQUEIDENTIFIER CONSTRAINT [DF_Users_UserID] DEFAULT (newid()) NOT NULL,
[UserDetailID] UNIQUEIDENTIFIER NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED …Run Code Online (Sandbox Code Playgroud) one-to-one ×10
hibernate ×4
database ×2
java ×2
c# ×1
django ×1
doctrine ×1
flyway ×1
jpa ×1
nhibernate ×1
orm ×1
primary-key ×1
spring ×1
symfony ×1