标签: entity-relationship

真的很简单的CoreData关系,但返回nil和null?

这个错误在过去的4个小时里一直在破坏我.

此外,当我交换它并获得用户数据时,然后消息数据... User.name将显示,但Message.message不会.所以数据肯定会进入,但它们之间的关系似乎被打破了.

在此输入图像描述

iphone entity-relationship core-data one-to-one ios

19
推荐指数
1
解决办法
2060
查看次数

Hibernate @OneToMany没有单独的连接表

请考虑以下数据库架构:

create table UserGroup ( id int not null auto_increment, name varchar(200),
    primary key(id));
create table User ( id int not null auto_increment, name varchar(200),
    groupId int not null, primary key(id));
Run Code Online (Sandbox Code Playgroud)

User.groupId = UserGroup.id,因此用户只能是一个组的成员,但用户组可以存在许多用户.好到目前为止,让我们在Hibernate中创建实体.这是User:

@Entity
@Table(name = "User")
public class User {

    @Id
    @Column(name="id", nullable = false)
    private Integer id;

    @Column(name="name", length = 200, nullable = true)
    private String name;

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name = "groupId", nullable = false, insertable=false, updatable=false)
    @ForeignKey(name="FK_GroupId")
    private UserGroup userGroup;

    /* Getters, Setters, toString, equals …
Run Code Online (Sandbox Code Playgroud)

java entity-relationship hibernate jpa join

18
推荐指数
1
解决办法
2万
查看次数

使用实体框架加载嵌套实体/集合

我试图在一次调用中急切地加载所有相关实体或实体集合.我的实体看起来像:

Class Person
{
    public virtual long Id { get; set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
}

Class Employee
{
    public virtual long Id { get; set; }
    public DateTime AppointmentDate { get; set; }
    public virtual ICollection<EmployeeTitle> Titles { get; set; }
    public virtual Person Person { get; set; }
}

Class EmployeeTitle
{
    public virtual long Id { get; set; }
    public virtual bool IsCurrent { …
Run Code Online (Sandbox Code Playgroud)

c# entity-relationship code-first eager-loading entity-framework-4.1

18
推荐指数
2
解决办法
2万
查看次数

带有JTA的JPA:持久化实体并合并级联子实体

我与以下实体类具有双向一对多关系:

0或1个客户< - > 0个或更多产品订单

当持久化客户端实体时,我也希望持久化相关的产品订单实体(因为它们的"父"客户端的外键可能已被更新).

当然,所有必需的CASCADE选项都在客户端设置.但是,如果在引用现有产品订单时第一次持久保留新创建的客户端,则不起作用,如下所示:

  1. 产品订单"1"已创建并保留.工作良好.
  2. 创建客户'2'并将产品订单'1'添加到其产品订单列表中.然后它坚持下去.不行.

我尝试了几个apporaches,但没有一个显示预期的结果.请参阅下面的结果.我在这里阅读了所有相关问题,但他们没有帮助我.我在GlassFish 3.1.2上的Apache Derby(JavaDB)内存数据库中使用EclipseLink 2.3.0,纯JPA 2.0 Annotations和JTA作为事务类型.实体关系由JSF GUI管理.对象级关系管理工作(除了持久),我用JUnit测试测试它.

方法1)"默认"(基于NetBeans类模板)

客户:

@Entity
public class Client implements Serializable, ParentEntity {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToMany(mappedBy = "client", cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH},
            fetch= FetchType.LAZY)
    private List<ProductOrder> orders = new ArrayList<>();

    // other fields, getters and setters
}
Run Code Online (Sandbox Code Playgroud)

ProductOrder:

@Entity
public class ProductOrder implements Serializable, ChildEntity {
    private static final long serialVersionUID = 1L;

    @Id …
Run Code Online (Sandbox Code Playgroud)

java entity-relationship jpa jta jpa-2.0

18
推荐指数
2
解决办法
4万
查看次数

在MySQL中实现一对一关系时确定外键

我有两个简单的表"items"和"orders".为简单起见,我们假设一个项目只能在一个订单中,或者一个订单只能包含一个项目.

现在,因为这可以使用简单的一对一关系实现,我可以执行以下操作:

我可以将orders表的主键添加到items表中,如下所示

//Table Items
item_id, item_name, order_id
1,        shoes,    1
2,        watch,    2

//Table Orders
order_id, customer
1,        James
2,        Rick
Run Code Online (Sandbox Code Playgroud)

或者我可以将items表的主键添加到orders表中,如下所示

//Table Items
    item_id, item_name
    1,        shoes
    2,        watch

//Table Orders
order_id, customer, item_id
1,        James,    1   
2,        Rick,     2
Run Code Online (Sandbox Code Playgroud)

哪一个是正确的,为什么?是否有任何指导线来决定哪个键在哪里?当然,常识会在上面的简单例子中起作用,但在复杂的例子中我们如何决定?

mysql database database-design entity-relationship one-to-one

18
推荐指数
1
解决办法
2万
查看次数

通过逆向工程数据库生成ER图

注意:最初这个问题是针对PostgreSQL提出的,但是,答案几乎适用于任何具有可以检测外键关联的JDBC驱动程序的数据库.


查询外键和表间关系的PostgreSQL数据字典非常简单,但是如何使用该信息生成表之间关系的图形?

关于可以做到这一点的工具的任何建议?

编辑:我知道GraphVIZ/DOT 可能很有用,但是,我不知道如何编写将生成有向图.DOT文件的应用程序.

database diagram entity-relationship

17
推荐指数
1
解决办法
4万
查看次数

EF4代码优先:定义对象关系,外键

<RANT_MODE>

EF代码优先方法意味着节省大量时间,但暂时我只看到玩具示例,并花了几个小时试图了解如何使它生成我想要的数据库.但仍然希望尤里卡时刻:-)

<RANT_MODE />

关于问题!

虚拟与具体属性

我试图了解EF如何映射和检索对象关系.什么时候我应该标记一个属性virtual?(public Person Owner { get; set; }与对比一样public virtual Person Owner { get; set; }.)在代码优先的几十个例子中,我看到他们似乎可以互换地使用这些,而没有太多的解释.我所知道的是导航属性(public virtual ICollection<Person> Owners { get; set; })需要是virtual为了使延迟加载成为可能(正确...?),但这在非集合的世界中如何应用?

对象关系和外键

public int OwnerId { get; set; }除了我感兴趣的'main'属性之外,我无法找到关于是否应该包含外键字段()的任何信息public Person Owner { get; set; }.我试着不这样做,EF亲切地自动添加了一个Owner_Id在我的表中命名的int列,似乎理解了我的意图.

Code First的约定("外键"部分)中,EF团队提到"在关系的依赖端包含外键属性是很常见的",并且"Code First现在将推断任何名为''的属性(即OwnerId)[...]与主键具有相同的数据类型,表示关系的外键".IE浏览器.如果我有两个EF将知道他们是相关的.

但除了"异物"本身之外,明确指定持有FK的此类属性是否被视为良好做法?

异物,外键 - 继续

正如我上面提到的,即使我只public Person Owner { get; set; }在我的对象中(例如Event),该表Events将包含Owner_Id由EF自动添加的列.更重要的是,在检索时,我将可以访问属性 …

.net mapping entity-relationship entity-framework code-first

17
推荐指数
1
解决办法
2431
查看次数

NSManagedObject无法从NSAtomicStoreCacheNode获取属性

我在实体A和实体B(单面)之间有一对一的关系,例如名为bRel.我有NSAtomicStore(MyStore)和NSAtomicStoreCacheNode(MyCacheNode)的子类.在load:MyStore 的方法中,我为实体A和B(aNode和bNode)创建MyCacheNode实例,并为每个实例分配相应的propertyCache字典.propertyCache for aNode包含key的bNode @"bRel".

aManagedObject是正常创建的,并且所有属性都有效.但是当aManagedObject通过它访问bManagedObject时aManagedObject.bRel.someAttribute,bManagedObject仍然是错误的.bManagedObject没有收到awakeFromInsertawakeFromFetch.bNode和bManagedObject共享相同的实例managedObjectID.当bManagedObject访问someAttribute时,bNode处于活动状态.当aManagedObject访问其属性时,它将通过valueForKey:MyCacheNode.当bManagedObject执行时,我们无法实现.

bManagedObject根本就不会发射.

谁能想到我应该在这种情况下检查什么?

attributes entity-relationship core-data objective-c nsmanagedobject

17
推荐指数
1
解决办法
454
查看次数

建议一个好的实体关系图构建工具偶尔使用?

免费软件是一个加号.你能用一句话描述为什么偶尔使用它应该足够好吗?

编辑:您可以查看这个很酷的链接,提供有关实体关系图和工具的更多信息

编辑:对于选择的答案几个提示 - 单击实体,即使它看起来像圆圈并键入名称并输入 - 它将为您提供实体框 - 单击关联,Ctrl + L将为您提供好的线条

diagram database-design entity-relationship

16
推荐指数
2
解决办法
6万
查看次数

PHP,Yii2 GridView过滤关系值

继此之后:

Yii2 SearchModel中的search()如何工作?

我希望能够过滤一GridView列关系数据.这就是我的意思:

我有两张桌子,TableATableB.两者都有使用Gii生成的相应模型.TableA有一个值的外键TableB,如下所示:

TableA
attrA1, attrA2, attrA3, TableB.attrB1

TableB
attrB1, attrB2, attrB3
Run Code Online (Sandbox Code Playgroud)

attrA1和attrB1是其相应表的主键.

现在,我有一个Yii2 GridViewattrA2,attrA3attrB2.我有一个工作过滤器attrA2,attrA3所以我可以搜索列值.我也对这两个列进行了工作排序 - 只需单击列标题即可.我希望能够添加此过滤和排序attrB2.

我的TableASearch模型看起来像这样:

public function search($params){
    $query = TableA::find();
    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);

    if (!($this->load($params) && $this->validate())) {
        return $dataProvider;
    }

    $this->addCondition($query, 'attrA2');
    $this->addCondition($query, 'attrA2', true);
    $this->addCondition($query, 'attrA3');
    $this->addCondition($query, 'attrA3', true);

    return $dataProvider;
} …
Run Code Online (Sandbox Code Playgroud)

php entity-relationship yii2

16
推荐指数
2
解决办法
2万
查看次数