- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对我的表格/实体有疑问。
我的 SQL 表如下所示:
表 1:
IdTable1(pk)
属性...
表 2:
IdTable2(pk)
属性...
表3:
IdTable1(pk)
IdTable2(pk)
日期
好的..现在我在 Java JPA 中有以下实体:
表1
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Table1 {
private Long table1Id
protected Table1() {
super();
}
protected Table1(Long table1Id) {
super();
this.table1Id = table1Id;
}
public boolean equals(Object obj) {
if (obj instanceof Table1) {
Table1 fach = (Table1) obj;
return this.getTable1Id().equals(fach.getTable1Id());
} else {
return false;
}
}
@Id
@Column(name = "IDTABLE1")
public Long getTable1Id() {
return table1Id;
}
public void setTable1Id(Long table1Id) {
this.table1Id = table1Id;
}
}
表2
@Entity
public class Table2 {
private Long table2Id
protected Table2() {
super();
}
protected Table2(Long table2Id) {
super();
this.table2Id = table2Id;
}
public boolean equals(Object obj) {
if (obj instanceof Table2) {
Table2 fach = (Table2) obj;
return this.getTable2Id().equals(fach.getTable2Id());
} else {
return false;
}
}
@Id
@Column(name = "IDTABLE2")
public Long getTable2Id() {
return table12d;
}
public void setTable2Id(Long table2Id) {
this.table2Id = table2Id;
}
}
表3
@Entity
public class Table3 implements Serializable {
private static final long serialVersionUID = 1L;
private Table3Id table3Id;
private Date date;
public Table3() {
super();
}
public Table3(Date date, Table1 table1, Table2 table2) {
super();
this.date = date;
this.table3Id = new Table3Id(table1, table2);
}
@EmbeddedId
public Table3Id getTable3Id() {
return table3Id;
}
public void setTable3Id(Table3Id table3Id) {
this.table3Id = table3Id;
}
@Column(name = "date", nullable = true)
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
表3Id
@Embeddable
public class Table3Id implements Serializable {
private static final long serialVersionUID = 1L;
private Table1 table1;
private Table2 table2;
public Table3Id() {
}
public Table3Id(Table1 table1, Table2 table2) {
this.table1 = table1;
this.table2 = table2;
}
public Table1 getTable1() {
return table1;
}
public void setTable1(Table1 table1) {
this.table1 = table1;
}
public Table2 getTable2() {
return table2;
}
public void setTable2(Table2 table2) {
this.table2 = table2;
}
}
好的...我现在如何从我的 Dao 对象中获取 Table3 属性:?
Query query = entityManager.createQuery("select t from Table3 as t")
<小时/>
编辑
就像 this ,但我的 EntitiyId 中有实体(例如 Table1 table1;Table2 table2),而不是“long table1id;long table2id”。
<小时/>编辑
我认为 @Niemand 的查询是正确的,但我得到以下异常:
Caused by: org.hibernate.MappingException: Could not determine type for: Table1, at table: Table3, for columns: [org.hibernate.mapping.Column(table1)]
最佳答案
Query query =entityManager.createQuery("从Table3中选择t.table3Id.table1, t.table3Id.table2作为t")
这是你想要的吗?
关于java - 如何从我的实体获取 EmbeddedId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27566339/
我有一个表,其中包含一个序列和两个外键的复合主键 我能够持久化我的实体类,但它没有按照顺序生成。由一个序列和两个外键组成的复合主键的表,maven中的hbm2java给出了以下实体 这是主要实体 pa
我有一个 hibernate 映射问题。我有以下两个数据库表(我不允许更改数据库): LOCATIONS { ID, -- PK NAME } LOCATION_GROUPS { L
我知道Hibernate中@EmbeddedId注解的复合主键至少由嵌入主键对象的所有对象变量的组合组成。 但是主键对象本身的引用是否也属于复合主键,因此它是由嵌入主键对象的引用值和对象变量构建的?
我对我的表格/实体有疑问。 我的 SQL 表如下所示: 表 1: IdTable1(pk) 属性... 表 2: IdTable2(pk) 属性... 表3: IdTable1(pk) IdTable
这是我的问题 IdComposite 类: @Embeddable public class IdComposite implements Serializable{ @Column(name =
我正在尝试使用引用另一个表的复合主键。我看到了很多主题,但没有答案适用于我的情况。 在我的数据库中,列是由未添加 owner_id 的外键正确创建的。因此,即使员工不存在,我也可以添加新记录。我使用
我收到了一个 Eclipse 错误:@EmbeddedId . 这是实体: @Entity @Table(name = "PERSON") public class Person implements
所以我这里有一个看起来像这样的图表, 可以在此 Answer Here 中找到. +---------------+ +-------------------+ | PRODUCTS
当我尝试从 JPA 存储库获取实体列表时,总是会遇到这样的异常 org.springframework.orm.jpa.JpaSystemException: No default construct
我正在尝试在一个类之间创建一对一的关系,我们将其称为“第一”,另一个类将其称为“第二”。 如果 Second 类使用 @EmbeddedId 作为其主键,它不会允许我这样做,我该如何解决这个问题? 基
我正在使用 hibernate,并且我已经使用 hibernate 在 java 端创建了实体。我的一个数据库表有多个列作为主键,hibernate 使用 @EmbeddedId 来处理这个问题。 我
我有一个主类和一个辅助类,用于存储保存时的错误。错误可以有多种类型,主键是错误的主要类别和类型。这是我的类的映射: 我的初级类(class): @Entity @Table(name = "foo")
我有一个具有复合主键的@Entity。因此,我创建了一个包含 PK 字段的 @EmbeddedId。 问题:是直接通过id.*访问这些字段更好,还是应该在父类中创建getter/setter? 例子:
我有一个包含三个字段 A、B、C 的 @Entity,其中 A 和 B 充当复合主键。我创建了一个包含 A 和 B 的 @EmbeddedId 类。为了减轻定义 getter 和 setter 的负担
在使用 hibernate 和 JPA 的 Spring MVC 应用程序中,我尝试为其基础数据表具有两列主键的实体设置映射。 如何更改下面的代码以使其正常工作? 我创建了一个名为 conceptPK
我有我的实体: @Entity @Table(name="performances") @AssociationOverrides({ @AssociationOverride(name="i
我有点麻烦。我正在使用 JPA Criteria 进行动态选择(使用标准作为 where 子句具有可选变量...)但我的实体之一有一个 EmbeddedId ,其中包含其中的用户列并且需要检查用户 I
我想使用条件进行以下查询。我有一个定义了 EmbeddedId 的 Entity: @Entity @Table(name="TB_INTERFASES") public class Inter
我的 @MapsId 注释和 @EmbeddedId 存在问题。在 Hibernate 中运行代码时,我得到: Caused by: org.hibernate.PropertyAccessExcep
我有以下实体: @Entity(name = "game_users") public class GameUser { private GameUsersPK primaryKey;
我是一名优秀的程序员,十分优秀!