我在java中有两个实体(学生和组),具有@OneTo许多
关系
public class Group {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name="name")
private Integer groupName;
public Group(Integer groupName) {
this.groupName = groupName;
}
@OneToMany
@JoinTable(name = "groups_students",
joinColumns= @JoinColumn(name = "group_id"),
inverseJoinColumns = @JoinColumn(name = "student_id")
)
private Set<Student> students;
}
我在本地主机上的表< code>groups_students中有第三列< code>date。< code>date不是类中的字段。我需要在< code>@Query中得到这个。任何人可以请帮助我如何能得到这一点(也许给这个<代码>日期 列或任何其他方式的代码信息)
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name="first_name")
private String firstName;
@Column(name="last_name")
private String lastName;
public Student(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}
处理联接表中其他属性的方法是将其定义为单独的实体,然后使用中间实体拆分关系
@Entity
@Table(name = "groups_students")
public class GroupStudent {
@Id
@ManyToOne(fetch = FetchType.LAZY)
private Group group;
@Id
@ManyToOne(fetch = FetchType.LAZY)
private Student student;
@Column(name = "date")
private Date date;
//getter-setter
}
现在修改组
实体上的关系
@OneToMany(mappedBy = "group", cascade = CascadeType.ALL)
private List<GroupStudent> groupStudents = new ArrayList<>();
并修改< code >学生实体关系
@OneToMany(mappedBy = "student", cascade = CascadeType.ALL)
private List<GroupStudent> groupStudents = new ArrayList<>();
现在,如果您想查询其他属性(如<code>date</code>),可以使用类似这样的JPQL(例如,如果您想要获取日期在过去的组的所有学生)
@Query(SELECT s FROM Student s JOIN s.groupStudents gs WHERE gs.group = :group and gs.date < CURRENT_DATE)
我有三个班,站点,GoupIP和IP 一个站点有一个或多个抱怨。GroupIP有一个或多个IP。 代码如下: 地点 群居 IP 在GroupIp课堂上,我得到: 在属性“ips”中,“映射者”值“groupip”无法解析为目标实体上的属性。 我的代码出了什么问题??
常用数据库类型: 关系型数据库(以 MySQL、Postgresql为代表) 文档数据库 (以 MongoDB 为代表) 在我们开发的 Web 应用程序或者,系统的应用程序里面存储的一些数据都是存在一定的关联关系的,比如说用户做出了一些操作,我们需要知道是谁发起了这些操作,所以在日志记录表里面会有一个操作发起人,也就是记录下当前用户的唯一 Id 值,这是为了让一切都有迹可循,当出现各种事故的时候,
问题内容: 假设我有两个实体: 然后,我要保留“客户”实体,然后,参照先前添加的“客户”保留“订单”实体。当我从数据库中检索此客户并调用getOrders时,它将返回空集。这是正常行为吗?如果是,当我添加新的Order实体时,我该怎么做以自动刷新此集合? 问题答案: Jpa不会为您维护关系,因此应用程序需要设置双向关系的两端,以使它们与数据库保持同步。当您设置了order-> customer关系
我正在使用Ebean和Play 2框架,并得到两个模型:用户模型和图书模型。用户模型与图书模型以一对多关系连接。所以每个用户可以有很多书或者根本没有书。图书模式本身也有其特性。现在我想在用户模型中创建一个查询,它只返回用户,这些用户拥有具有某些属性的书籍。例如:一个属性可能是条件,如新建或使用。现在给我所有有新条件的书的用户。是否可以使用Ebean方法创建这样的查询?还是我必须使用原始SQL?
我试图创建一个包含问题的SQL关系,每个问题可以有一个或多个备选项,但当我从REST API调用它时,看看发生了什么:REST调用 以下是我的问题和备选模式: 模型
我在将带有@ManyToOne关系的实体(雇员)映射到带有@OneToMany关系的实体(社区)时遇到了问题。 当我将一个实体(社区)分配给一个实体(员工),其中社区的值为空时,它工作正常。 问题出现了,如果雇员已经为社区分配了价值。当我更改该值并保存更改时,该员工为社区获得了新的值,并且这个新社区在集合中获得了该员工。唯一的问题是,老社区仍然有这个员工在收集,但它应该被删除。这只有在数据库重新启