Java 如何制作一对一的映射框架
我正在尝试使用playframework在两个表之间设置一对一的映射。我希望在此映射之后为每个用户创建评级列表。然而,我不能。你能帮我吗? 我的两门课是这样的:Java 如何制作一对一的映射框架,java,database,jpa,playframework,one-to-one,Java,Database,Jpa,Playframework,One To One,我正在尝试使用playframework在两个表之间设置一对一的映射。我希望在此映射之后为每个用户创建评级列表。然而,我不能。你能帮我吗? 我的两门课是这样的: User.java 封装模型; 导入java.util.*; 导入javax.persistence.*; 导入play.db.jpa.Model; @实体 @表(name=“`user`”) 公共类用户扩展模型{ 公共字符串名称; 公共字符串姓氏; 公共字符串密码; 公共字符串用户名; 公开日期最后登录; @身份证 @生成值 } U
User.java
封装模型;
导入java.util.*;
导入javax.persistence.*;
导入play.db.jpa.Model;
@实体
@表(name=“`user`”)
公共类用户扩展模型{
公共字符串名称;
公共字符串姓氏;
公共字符串密码;
公共字符串用户名;
公开日期最后登录;
@身份证
@生成值
}
UserRating.java
封装模型;
导入java.util.*;
导入javax.persistence.*;
导入play.db.jpa.Model;
@实体
@表(name=“`userrating`”)
公共类用户评级扩展模型{
公众双重评级;
@身份证
@生成值
@MapsId
@OneToOne()
@JoinColumn(name=“user\u id”)
公共用户;
}
我的yaml文件是:
User(19):
name: freud
surname: lily
password: x56
username: freud
lastlogin: 2010-05-02
User(20):
name: osman
surname: özsu
password: 798
username: osman
lastlogin: 2004-12-11
UserRating(1):
rating: 1.2
user: User(2)
这是我的用户类的一个示例:
@Entity
@SuppressWarnings("serial")
public class User extends Model implements BasicModel<Long>
{
@Id
public Long idUser;
@Constraints.Required
@Column(unique=true)
public String mail;
@ManyToMany(cascade = CascadeType.ALL, targetEntity = Module.class)
public List<Module> contributors;
@JsonIgnore
private String password;
@Constraints.Required
public String firstName;
@Constraints.Required
public String lastName;
public static Model.Finder<String, User> find = new Finder<String,User>(
String.class, User.class);
}
以及:
仅当您希望每个用户只有一个评级时,用户才是id。无论如何,您的类中应该有一个id。这就是您的yaml的外观:
users:
- &user1 !!models.User
name: freud
surname: lily
[...]
UserRating:
rating: 1.2
user: *user1
&char用于引用对象,*char用于链接引用。
我发布了一个关于哪个可能更有用的答案:
请注意,ID是自动生成的,无需指定它们。本教程适用于我: 它涵盖了OneTONE关系的两种不同情况:
- 单向一对一关系
- 双向一对一关系
@Entity
@Table(name = "`userrating`")
public class UserRating extends Model {
public double rating;
@OneToOne()
@JoinColumn(name="id_user")
public User user;
}
users:
- &user1 !!models.User
name: freud
surname: lily
[...]
UserRating:
rating: 1.2
user: *user1