我尝试使用hibernate、JPA和JSON进行spring rest。我必须使用以下实体:
university.java
@Entity()
@Table(name = "university")
public class University extends BaseEntity {
private String uniName;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "university_id", foreignKey = @ForeignKey(name = "university_id"))
private Collection<Student> students;
//setters and getters
}
@Entity
@Table(name = "student")
public class Student extends BaseEntity {
private String stuName;
@ManyToOne(fetch = FetchType.EAGER)
@JsonIgnoreProperties("students")
private University university;
//setters and getters
}
[
{
"id": 1,
"uniName": "uni1",
"students": [
{
"id": 1,
"stutName": "st1",
"university": {
"id": 1,
"uniName": "uni1"
}
},
{
"id": 2,
"stutName": "st2",
"university": {
"id": 1,
"uniName": "uni1"
}
}
]
}
]
Hibernate:
select
university0_.id as id1_5_1_,
university0_.uniName as uniName2_5_1_,
students1_.university_id as universi3_4_3_,
students1_.id as id1_4_3_,
students1_.id as id1_4_0_,
students1_.stuName as stuName2_4_0_,
students1_.university_id as universi3_4_0_
from
university university0_
left outer join
student students1_
on university0_.id=students1_.university_id
where
university0_.id=?
Hibernate:
update
student
set
stuName=?,
university_id=?
where
id=?
Hibernate:
update
university
set
uniName=?
where
id=?
Hibernate:
update
student
set
stuName=?,
university_id=?
where
id=?
Hibernate:
select
university0_.id as id1_5_1_,
university0_.uniName as uniName2_5_1_,
students1_.university_id as universi3_4_3_,
students1_.id as id1_4_3_,
students1_.id as id1_4_0_,
students1_.stuName as stuName2_4_0_,
students1_.university_id as universi3_4_0_
from
university university0_
left outer join
student students1_
on university0_.id=students1_.university_id
where
university0_.id=?
Hibernate:
select
student0_.id as id1_4_0_,
student0_.stuName as stuName2_4_0_,
student0_.university_id as universi3_4_0_
from
student student0_
where
student0_.id=?
Hibernate:
select
student0_.id as id1_4_0_,
student0_.stuName as stuName2_4_0_,
student0_.university_id as universi3_4_0_
from
student student0_
where
student0_.id=?
Hibernate:
update
student
set
university_id=?
where
id=?
Hibernate:
update
student
set
university_id=?
where
id=?
更新:这是我的编辑服务。
@Override
@Transactional/*(propagation = Propagation.NESTED)*/
public T edit(T entity) throws Exception {
return entityManager.merge(entity);
}
感谢任何帮助和建议。
尝试更新您的实体,如下所示
@Entity
@Table(name = "university")
public class University extends BaseEntity {
private String uniName;
@OneToMany(mappedBy = "university", ...) // Check the mappedBy property
private Collection<Student> students;
//setters and getters
}
@Entity
@Table(name = "student")
public class Student extends BaseEntity {
private String stuName;
@ManyToOne(fetch = FetchType.EAGER)
@JsonIgnoreProperties("students")
private University university; // university is bidirectionally mapped to Student
//setters and getters
}
问题内容: 我想更新表的所有字段的值为“ PCNAME”。我要更新的表名是XYZ。我只想更新一些字段而不保留一些不变。 这会影响很多行而不是一行,因为会有很多行带有NAME =’PCNAME’。我如何使用JPA做到这一点。我有与此表关联的实体类。 问题答案: 您既可以采用面向对象的方式,也可以使用更新查询。 面向对象: 使用更新查询(未试用): 显然,第二个版本的性能更好。
您好,我想平稳地更新seekbar,每秒钟更新一次,所以我创建了一个使用计时器的方法,每秒钟更新seekbar,但它每秒钟都在更新歌曲,我到处搜索,但没有找到解决方案,我不想使用任何处理程序,我想用这个方法修复 在这里我实现了歌曲开始时的方法 这是我的全部代码
我的问题可能看起来很傻。我是JPA的新手,试图理解它的基本概念。我发现有一种@multi-to-one实体关系可以在那里使用。我的问题是,为什么有人想在拥有“一对多”关系的同时使用它?我的意思是,拥有后一个就足够了解关系并发送查询了,对吗?如果没有,请解释。也许我对这两种关系的看法是完全错误的。请提供一个场景作为示例,以便我更好地理解。谢谢
我正在尝试用杜松子酒和戈尔姆酒制作API。现在我已经插入了一个API。这个API将在数据库中创建多个条目。我有这样的json体。数组的大小会有所不同。 这样,我就有了从url获取的其他参数- 现在我想在DB上创建多个条目[1,2],其中包含key1和key2的数据,如- 我陷入了困境,不知道如何阅读这个json并将数据保存在我的模式(struct)中,以创建多个条目,如- 请引导我找到一个可能的解
我正在尝试使用Hibernate/Jpa建立一对多关系。 当前我遇到以下异常: 退款交易。java这是父类 ItemRefundDetail.java这是子类。 我知道我在@OneToMany或@manytone注释中犯了一些错误。 更新:我在db、refund_transaction和item_refund_detail中只有2个表。我没有任何名为refund_transaction_item_
问题内容: 我下面有两个… 我想更新的,有时也用下面的方法有时… 方法#1 方法#2 第一种方法可以正常工作,但第二种则不能。但是,当我将“ 从” 移至“ 第二”方法时,效果很好,而不是第一个。 问题答案: 问题是一个问题。 假设它是的子类,那么您的问题是关系中只有一方是拥有实体。将使得实体所属的实体,因此仅改变该实体被持久化。这意味着,你必须更新在这两种情况下的实体。如果您有一个“ a”的组列表