标签: jointable

HQL JoinTable无法访问

我在媒体和标签之间有很多关系:

介质:

@ManyToMany(fetch=FetchType.EAGER)
@IndexColumn(name="tags_index_column")
@JoinTable(name="tag_map",
          joinColumns={@JoinColumn(name="tag_id")},
          inverseJoinColumns={@JoinColumn(name="item_id")})
private List<Tag> tags;
Run Code Online (Sandbox Code Playgroud)

标签:

@ManyToMany(mappedBy="tags")
@JoinTable(name="tag_map",
        joinColumns={@JoinColumn(name="item_id")},
              inverseJoinColumns={@JoinColumn(name="tag_id")})
private List<Medium> media;
Run Code Online (Sandbox Code Playgroud)

我尝试从hql查询连接表,但我总是得到一个例外:

String resultQueryString = "From tag_map"

        Query resultQuery SessionFactory.getCurrentSession().createQuery(resultQueryString);
Run Code Online (Sandbox Code Playgroud)

例外:

org.springframework.orm.hibernate3.HibernateQueryException: tag_map is not mapped [From tag_map]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: tag_map is not mapped [From tag_map]
Run Code Online (Sandbox Code Playgroud)

我基本上想要做的是查询具有特定id的标签的所有媒体.不幸的是我无法访问连接表.

有什么建议?:)

hibernate hql jointable

3
推荐指数
1
解决办法
3504
查看次数

使用迁移或模型创建连接表?

作为Ruby on Rails的新手,我正在阅读Rails指南,今晚是Active Record Migrations.

在完成关于连接表的部分(http://guides.rubyonrails.org/active_record_migrations.html#creating-a-join-table)之后,我留下的印象是使用create_join_table比创建更好(并且更简单)通过rails生成模型连接表.

这是正确的假设吗?我应该注意细微差别吗?

ruby ruby-on-rails jointable

3
推荐指数
1
解决办法
4822
查看次数

JoinTable再次没有填充多对多的休眠关系

| AA | 多对多| BB | 多对多| CC |

用连接表映射成了

| AA | - | AA_BB | - | BB | - | BB_CC | - | CC |

(我不能张贴图片抱歉,声誉低)

编辑:简短问题是为什么如果创建一个Aa元素,Bb元素,Cc元素添加Cc到Bb集合,Bb到Aa集合保存(Aa)工作正常(AA_BB填充)?

但是如果我创建一个Bb元素,Aa元素,Cc元素将Aa添加到Bb集合中将Cc添加到Bb集合中保存(Bb)(AA_BB 填充?)

BB_CC总是被填满.

结束编辑

 CREATE TABLE BB_CC (
  BBIDBB number(10) NOT NULL, 
  CCIDCC number(10) NOT NULL, 
  PRIMARY KEY (BBIDBB, 
  CCIDCC));
CREATE TABLE AA_BB (
  AAIDAA number(10) NOT NULL, 
  BBIDBB number(10) NOT NULL, 
  PRIMARY KEY (AAIDAA, 
  BBIDBB));
CREATE TABLE CC (
  IDCC  number(10) NOT NULL, 
  DESCR varchar2(10) NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

many-to-many hibernate jointable

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

JPA使用@JOINTABLE和@JOINCOLUMNs

我正在使用JPA从现有的ERP系统中提取数据.我正在为某些数据使用(现有)连接表.问题是我还应该匹配不在连接表上的列,而是匹配源表本身.

T1 (source)
- F1*
- F2
- F3
- ..

T2 (join)
- F4
- F5

T3 (source)
- F6*
- F7
- F8
- ..
Run Code Online (Sandbox Code Playgroud)

我当前的连接表条件是这样的:

@ManyToOne(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinTable(name="T2", schema=Util.schema, joinColumns = {   
        @JoinColumn(name="F4", referencedColumnName="F2", unique=false),
        @JoinColumn(name="F5", referencedColumnName="F3", unique=false)
    },
    inverseJoinColumns = {
        @JoinColumn(name="F4", referencedColumnName="F7", unique=false),
        @JoinColumn(name="F5", referencedColumnName="F8", unique=false)
    }
}
Run Code Online (Sandbox Code Playgroud)

这有效,但我如何/在哪里添加条件T1.F1 = T3.F6?

java jpa join jointable

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

在 MySQL 连接表中使用 GROUP BY

我在两个表之间使用 JOIN 时遇到问题,这是我的表:

病人表

........................................
uid | no_mr     | name
........................................
1   | 1101      | Eko
2   | 1102      | John Doe
Run Code Online (Sandbox Code Playgroud)

访问表

..............................................
uid | vcode         | patient_id
..............................................
1   | V-20130725143528  | 1
2   | V-20130726132308  | 2
3   | V-20130726142907  | 2
4   | V-20130726144436  | 1 
Run Code Online (Sandbox Code Playgroud)

如何根据访问表显示患者数据,并按visit.uid降序排列。

这是我的查询,

SELECT patient . * , visit.uid
FROM patient
LEFT JOIN visit ON patient.uid = visit.patient_id
WHERE patient.uid >1
GROUP BY patient.no_mr
ORDER BY visit.uid DESC 
LIMIT 0 , …
Run Code Online (Sandbox Code Playgroud)

mysql group-by left-join jointable

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

SQL 连接两个 ID 匹配的表

我的数据库中有两个表。

Movies 桌子:

+----------------------------------------
| ID | title                | timestamp |
+----------------------------------------
| 1  | The host             | time      |
| 2  | Fight Club           | time      |
| 4  | 21                   | time      |
----------------------------------------+
Run Code Online (Sandbox Code Playgroud)

Movie_Links 桌子:

+---------------------------------------+
| ID | link                 | movie_id  |
+---------------------------------------+
| 1  | some link            | 1         |
| 2  | some link            | 1         |
| 3  | some link            | 1         |
+---------------------------------------+
Run Code Online (Sandbox Code Playgroud)

目前我只从Movies表中选择行title,例如:

SELECT * FROM …
Run Code Online (Sandbox Code Playgroud)

sql jointable

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

Grails GORM:更改外键列名称

我正在尝试更改Visitor表中用于Userid 的外键列名.该列现在命名user_id,我想将其更改为who_id.

最小User域类:

class User {

    static hasMany = [
        visitor: Visitor
    ]

    String uid

    ...

}
Run Code Online (Sandbox Code Playgroud)

最小Visitor域类:

class Visitor {

  static belongsTo = [user: User]

  ....

}
Run Code Online (Sandbox Code Playgroud)

题:

我试过mappedBy但没有成功,是否有另一种方法可以使用属性User作为外键Visitor

grails grails-orm jointable

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

重构Rails连接表 - 我应该保留哪种格式

我目前正在重构Rails应用程序中使用的表.在整个开发过程中,人们使用各种不同的方法来创建要使用的连接表has_and_belongs_to_many.

我应该使用以下三种格式中的哪一种;

1 - ID和时间详细信息

id,table_a_id,table_b_id,created_at,updated_at

2 - 身份证

id,table_a_id,table_b_id

3 - 只是表ID

table_a_id,table_b_id

当前的思考

我倾向于第三个选项,因为在我的应用程序中我们不关心何时建立关系,也没有看到ID中的要点,因为我们永远不会直接查询该表.

这是短视的吗?包含所有字段的开销将是最小的,但如果他们只是坐在那里没有被使用,我宁愿我们没有它们.

mysql ruby-on-rails jointable

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

一个类被传递给`:class_name`,但我们期待一个字符串

我正在尝试创建一个名为 :books_users 的连接表,其中书籍中的一列 :claim 是一个布尔值,如果有人单击“查看此书”的链接,则书籍控制器中的声明操作会执行以下操作:

def claim
    book = Book.find(params[:id])
    book.claims << current_user unless book.claims.include?(current_user)
    redirect_to current_user
    flash[:notice] = "You have a new book to review!"
  end
Run Code Online (Sandbox Code Playgroud)

这样做的目的是让我的用户注册为评论者可以进入图书展示页面,如果他们决定评论评论者通过流派找到的作者上传的书?然后他们基本上表明他们要评论那本书,他们的评论最终将作为经过验证的购买评论显示在亚马逊上,而不是书籍显示页面上网站上的俗气文本评论(这将使注册的作者审核服务很开心)。

我的模型看起来像这样:

book.rb 

class Book < ApplicationRecord
  mount_uploader :avatar, AvatarUploader
  belongs_to :user
  has_and_belongs_to_many :genres
  has_and_belongs_to_many :claims, join_table: :books_users, association_foreign_key: :user_id

end

user.rb

class User < ApplicationRecord
mount_uploader :avatar, AvatarUploader

  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable
  has_many :books
  enum …
Run Code Online (Sandbox Code Playgroud)

arrays ruby-on-rails associations has-and-belongs-to-many jointable

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

使用 SQL 查询获取在多个部门工作的员工

我试图找出一个查询,该查询显示在 2 个以上部门工作的员工的姓名以及他们的工资和联系方式。我有两张表员工和部门。这两个都有 EmployeeName 字段。我知道我们必须使用 Count 函数,但真的不知道如何创建查询。

这里是表名和字段:

  • Employee (员工姓名、工资、联系人编号)
  • Department (员工姓名、部门编号、工作时间、开始日期)

sql oracle count jointable

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