标签: composite-key

具有Entity Framework 4.0的复合数据库密钥

我们公司对大型数据库的重新设计大量使用了数据库上的复合主键.

忘记性能影响,这会在Entity Framework 4.0中使用此db时遇到任何困难吗?数据库结构不太可能改变,我不是在寻找"哲学"辩论,但实际影响是什么?

杰里米·米勒,"复合键使任何类型的对象/关系映射和一般很难持久性的." 但他并没有真正说出原因.这与Entity Framework 4.0如何处理密钥有关吗?

entity-framework primary-key composite-key

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

Oracle复合主键/外键问题

我在oracle的1个表中有一个复合主键.我想为我的第二个表中的一个表项创建一个外键,该表引用第一个表中的复合主键.我收到错误ORA-02256.关于如何进入这个的任何想法?

CREATE TABLE groupspersonx ( 
  personid number, 
  groupid number, 
  CONSTRAINT pk_persongroupid PRIMARY KEY(personid, groupid) 
); 

CREATE TABLE restrictedgroups ( 
  groupid number, 
  name varchar2(50), 
  dateadded date, 
  since date, 
  notes varchar2(1024), 
  CONSTRAINT pk_groupid PRIMARY KEY(groupid), 
  CONSTRAINT fk_persongroup FOREIGN KEY(groupid) REFERENCES groupspersonx(personid, groupid) 
); 
Run Code Online (Sandbox Code Playgroud)

sql oracle composite-key

12
推荐指数
1
解决办法
6万
查看次数

Hadoop - 复合键

假设我有一个制表符分隔文件,其中包含如下格式化的用户活动数据:

timestamp  user_id  page_id  action_id
Run Code Online (Sandbox Code Playgroud)

我想编写一个hadoop作业来计算每个页面上的用户操作,因此输出文件应如下所示:

user_id  page_id  number_of_actions
Run Code Online (Sandbox Code Playgroud)

我需要像复合键这样的东西 - 它将包含user_id和page_id.使用hadoop有没有通用的方法呢?我找不到任何有用的东西.到目前为止,我在mapper中发出这样的键:

context.write(new Text(user_id + "\t" + page_id), one);
Run Code Online (Sandbox Code Playgroud)

它有效,但我觉得这不是最好的解决方案.

hadoop composite-key

11
推荐指数
1
解决办法
6117
查看次数

JPA表有2个主键字段

我有一个只包含2个字段的表.该表具有由这两个字段形成的复合PK.

使用Netbeans从数据库创建实体bean时,实体bean不会像其他具有2个以上字段的表一样自动创建.

所以我想我需要自己创建实体bean.创建此实体bean的最佳做法是什么?是否必须包含COMPOSITE KEY对象?

java orm jpa composite-key jpa-2.0

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

Hibernate应该能够处理重叠的外键吗?

我有一个表有两个外键到两个不同的表,两个外键共享一列:

CREATE TABLE ZipAreas
(
  country_code CHAR(2) NOT NULL,
  zip_code VARCHAR(10) NOT NULL,
  state_code VARCHAR(5) NOT NULL,
  city_name VARCHAR(100) NOT NULL,
  PRIMARY KEY (country_code, zip_code, state_code, city_name),
  FOREIGN KEY (country_code, zip_code) REFERENCES Zips (country_code, code),
  FOREIGN KEY (country_code, state_code, city_name) REFERENCES Cities (country_code, state_code, name)
)
Run Code Online (Sandbox Code Playgroud)

如您所见,有两个FK共享country_code(巧合地引用了引用路径末尾的同一列).实体类看起来像(JPA 1.0 @IdClass):

@Entity
@Table(name = "ZipAreas")
@IdClass(value = ZipAreaId.class)
public class ZipArea implements Serializable
{
    @Id
    @Column(name = "country_code", insertable = false, updatable = false)
    private String countryCode;

    @Id
    @Column(name = …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa foreign-keys composite-key overlapping

10
推荐指数
3
解决办法
9208
查看次数

Hibernate:没有实体Inner Class的默认构造函数

我意识到有很多类似的问题,但没有一个能帮我解决这个问题.

我正在使用一个名为Tynamo的CRUD框架,后者又依赖于Apache Tapestry和Hibernate.这一切都很好,除了当我尝试在具有复合/复合主键的表上使用CRUD时.

我决定不去这@EmbeddedId条路,因为它似乎根本不适用于框架.话虽这么说,我一直在使用这种@IdClass方法,主要是工作; 我想我是一两行远离成功的代码.

问题在于,当它开始使用反射来构建对象时,它会爆炸并说org.hibernate.InstantiationException: No default constructor for entity: ...,即使确实有一个公共的空构造函数用于该内部类.

在回答时,请避免使用代码片段,并使用完整的课程等,以便访问此主题的其他人可以更全面地了解正在发生的事情.

你可以在下面看到我的课程:

package com.company.crud.entities;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;

import com.company.crud.entities.TransferExtension.TransferExtensionPK;

@Entity(name = "Transfer_Extensions")
@IdClass(TransferExtensionPK.class)
public class TransferExtension implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    // @NotNull(message = "Please supply a Script Code")
    // @Length(min = 3, max = 4)
    @Column(name = "Division", nullable = false)
    private String scriptCode;

    @Id
    // @NotNull(message = …
Run Code Online (Sandbox Code Playgroud)

java hibernate tapestry composite-key tynamo

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

实体框架 - DB-First - 复合外键

我有一个数据库,其中包含一个带有2列主复合键的表(一个int,一个bigint.)我有两个具有复合外键的表,引用第一个表的复合主键.(就我所知,)数据库本身的关系很好,很花哨.

通过DB-first EF6生成DB上下文时,这些关系/导航属性不会在生成的模型中表示(两个子表中没有虚拟成员引用父表.)

由于它是db-first,我无法修改模型.

entity-framework composite-key database-first ef-database-first entity-framework-6

10
推荐指数
1
解决办法
944
查看次数

如何在SQL中使用NOT EXISTS和COMPOSITE KEYS从POJO插入数据

我正在使用DB2 DBMS.

场景1:

myTable有一个复合键(key1,key2),其中key1和key2都是来自yourTable的外键.

我想将yourTable中的新数据插入到myTable中,但前提是myTable中还没有key1,key2组合.

insert into myTable(key1, key2, someData)
values(x, y, z)
where NOT EXISTS (want to check if composite key is not already present)
Run Code Online (Sandbox Code Playgroud)

场景2:

我使用属性data1,data2和data将数据放入yourTable的java对象中.

我想在Scenario1中插入带有检查的上述数据.dataT + data2不应该已经出现在myTable中.

我该如何实现这一目标?我认为我们不能在insert语句中使用SELECT语句.

insert into myTable(key1, key2, data)
values(data1, data2, data)
where (data1 + data2 are already not present in myTable)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

java sql database db2 composite-key

9
推荐指数
1
解决办法
8068
查看次数

实体框架数据库第一 - 复合外键

我有一个包含几个复合外键的数据库.例如,以下是外键的生成脚本:

ALTER TABLE [dbo].[WorkingRosters]  WITH NOCHECK ADD  CONSTRAINT
[FK_WorkingRoster_ShiftLeaveCode] FOREIGN KEY([OrganizationID], [ShiftLeaveCode])
REFERENCES [dbo].[ShiftLeaveCodes] ([OrganizationID], [Code])
GO
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用Entity Framework 5 Database-First从此数据库生成模型.但是,不会使用所有表和其他简单外键生成组合外键的关联.

我怎么能:

  1. 在edmx后面的xml中手动创建这些复合外键(痛苦)
  2. 让实体框架正确生成这些外键,以便我有映射

谢谢!

entity-framework composite-key ef-database-first entity-framework-5

9
推荐指数
1
解决办法
3426
查看次数

实体框架:如何从具有复合键的表中返回行?

  public class UserBuilding
    {
        [Key, Column(Order = 0)]
        public int UserId { get; set; }
        [Key, Column(Order = 1)]
        public int BuildingId { get; set; }
        public int BuildingLevel { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

如果我想要返回属于用户的所有不同建筑物,我会执行以下操作:

database.UserBuildings.Where(b => b.UserId == userId);
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我想从特定用户返回特定建筑物,该怎么办?这样做最"有效"的方式是什么?有没有比以下更好的方法(例如内置函数):

database.UserBuildings.Where(b => b.UserId == userId && b.BuildingId == buildingId);
Run Code Online (Sandbox Code Playgroud)

entity-framework row return composite-key

9
推荐指数
1
解决办法
7469
查看次数