我刚刚在Hibernate中注意到了这一点,并发现它有点令人惊讶(以一种受欢迎的方式)。我有一个名为SyncItem的实体类型,它是许多其他实体的超类。继承策略被设置为InheritanceType.JOINED,因此超类中的所有字段都有一个表,而子类表只包含添加到子类中的任何字段,以及对超类表的引用。
例如,我的SyncItem表如下所示:
mysql> describe syncItems;
+------------+--------------+------+-----+---------+----------------+
| Field | Type
我有两堂课
class Animal < ActiveRecord::Base; end
class Kitty < Animal; end
但是当我Kitty.find_by_name('Ser Pounce')时,我发现我实际上是在查询Animals表,尽管我已经通过迁移创建了一个Kitty表。
那么,我如何告诉rails,我希望Kitty.find_by_name查询Kitty表而不是父Animals表?
我有一个JPA超类和几十个子类。这些子类中的大多数没有添加特定属性。
在使用InheritanceType.JOINED时,JPA会为每个子类假设一个子表,从而导致大量过时的数据库表,从而使数据库管理和查询更加困难。
我的超类目前看起来如下:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "type")
public abstract class Employee {
@Id public int id;
public String firs
我在Rails活动记录继承中有一些问题,我需要创建一个继承父类属性(字段)的模型,并且还应该保存它自己的属性。
例:家长班
class Content < ActiveRecord::Base
end
继承父类(内容)的类
class Wiki < Content // Inherting Class Content
end
class Video < Content // Inherting Class Content
end
假设"content“表包含字段类型、名称(用于存储公共字段)
"Wiki“表包含字段主体、描述
“视频”表包含字
我正试图设计一个MS Access 2013数据库,以跟踪项目清单。
所有项目都具有某些公共属性,如名称、存储日期、物理项的位置等。
这些项目属于广泛的类别。类别反映在项目名称中。
大多数项目都有一个标准化的名称,由三个字母和一个正整数组成。字母表示类别,编号是该类别内的序列号。例如,PEN6' is item #6 in the "pens" category,LTR6`是“信函”类别中的第6项。
有一小部分物品有非常不标准的名字,比如“鲍勃给他朋友的信”。它们的类别很难由名称来确定,但它们仍然属于某些明确的类别(记录在其他地方)。
有些类型的数据只与某些类别相关。例
我正在使用Spring JPA从表中读取数据。此实体对象与其他六个表具有一对多关系。所有表中总共有20,000条记录。我使用下面的查询从数据库中获取数据。
SELECT * FROM A WHER ID IN (SELECT ID FROM B WHERE COL1 = '?')
一个表与其他6个表有关系。Spring JPA花费了大约30秒的时间从DB读取这些数据。这里有没有改善数据获取时间的想法。
我在这里使用原生查询,我正在寻找查询重写,以优化数据获取时间。请给我建议谢谢。
我有一个模型类,它引用了另一个模型类,似乎遇到了一个问题,即@OneToOne注解修复了一个问题,但却导致了另一个问题。移除它会导致相反的结果。
当尝试将更改保存到模型时,JPA会抛出“多个赋值到同一列”。生成的SQL有重复的列,我不确定原因。
下面是这些类的预览:
父类引用如下所示:
public class Appliance {
public Integer locationId;
@Valid
@OneToOne
public Location location;
}
子Location类有一个id字段和其他几个文本字段--非常简单:
public c
带有Hibernate的Spring data JPA支持javax.persistence.InheritanceType内部的通知javax.persistence.Inheritance和常量。在此基础上,将实体类之间的继承映射到DB (single table/joined )中。
我找不到任何类似的机制来支持spring data r2dbc的实体继承。我知道JPA和Hibernate的东西与r2dbc无关,但我不认为在spring data r2dbc存储库中支持继承有任何问题,也没有任何反对函数式编程的“反模式”。
有没有办法解决这个问题,或者有什么机制可以让我在spring d
我在检索与其他对象有许多关系的多个对象实例时遇到了性能问题。我在MySQL中使用Spring和Hibernate的JPA实现。问题是,当执行JPA查询时,Hibernate不会自动连接到其他表。这将产生n*r +1个SQL查询,其中n是要检索的对象的数量,r是关系的数量。
例如,一个人住在一个地址,有很多爱好,并且去过很多国家:
@Entity
public class Person {
@Id public Integer personId;
public String name;
@ManyToOne public Address address;
JPA的抓取策略控制到底是什么?我看不出渴望和懒惰之间有什么区别。在这两种情况下,JPA/Hibernate不会自动连接多对一关系。
人只有一个地址。一个地址可以属于许多人。JPA注释的实体类如下所示:
@Entity
public class Person {
@Id
public Integer id;
public String name;
@ManyToOne(fetch=FetchType.LAZY or EAGER)
public Address address;
}
@Entity
public class Address {
我在我的一个任务中使用了多态关系,继承了像这样的模型
Class Organization < ActiveRecord::Base
end
Class Company < Organization
has_many :roles, as: :authorizable
end
Class User < ActiveRecord::Base
has_many :roles, as: :authorizable
end
Class Role < ActiveRecord::Base
belongs_to :authorizable, :polymorphi
假设我有:
//inheritance annotations
public abstract class Animal {
private int noOfLegs;
//...
}
//inheritance annotations
public class Cat extends Animal {
//cat stuff
}
//inheritance annotations
public class Dog extends Animal {
//dog stuff
}
@Entity
public class House {
@One
尽管我知道,至少据我所知,这不是使用ActiveRecord进行关联的默认方式,我正在寻求帮助以实现"hibernatish“多态模型。
例如,考虑以下基本模型:
# Content only has one property named path
class Content < ActiveRecord::Base
self.abstract_class = true
end
具体内容:
# Audio only has one property on it's own (duration).
# However, it should also inherit Co