【发布时间】:2021-08-28 01:09:37
【问题描述】:
@Entity
public class Vehicle {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int number;
private String name;
@ManyToOne()
private UserDetails user;
public UserDetails getUserDetails() {
return user;
}
public void setUserDetails(UserDetails user) {
this.user = user;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Vehicle [number=" + number + ", name=" + name+"]";
}
}
@Entity
public class UserDetails {
@Id
private int userId;
private String userName;
@OneToMany(cascade = CascadeType.ALL,mappedBy = "user")
private List<Vehicle> vehicle=new ArrayList<Vehicle>();
public List<Vehicle> getVehicle() {
return vehicle;
}
public void setVehicle(List<Vehicle> vehicle) {
this.vehicle = vehicle;
}
@Lob
private String Description;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getDescription() {
return Description;
}
public void setDescription(String description) {
Description = description;
}
@Override
public String toString() {
return "UserDetails [userId=" + userId + ", userName=" + userName + ", vehicle=" + vehicle + ", Description="
+ Description + "]";
}
}
我得到以下结果。但在此结果中,突出显示的行具有相同的列名但具有不同的别名。为什么hibernate会选择同一个cloumn?
Hibernate:如果存在则删除表 hibernate_sequence Hibernate:如果存在则删除表 UserDetails 休眠:如果存在则删除表车辆 Hibernate:创建表 hibernate_sequence (next_val bigint) engine=InnoDB Hibernate:插入 hibernate_sequence 值(1) Hibernate:创建表 UserDetails (userId integer not null, Description longtext, userName varchar(255), primary key (userId)) engine=InnoDB Hibernate:创建表Vehicle (number integer not null, name varchar(255), user_userId integer, primary key (number)) engine=InnoDB Hibernate:alter table Vehicle 添加约束 FKj7mb7jwf8fhf3b6naff1uy9b4 外键 (user_userId) 引用 UserDetails (userId) 2021 年 6 月 11 日上午 9:15:22 org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator 启动服务 信息:HHH000490:使用 JtaPlatform 实现:[org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] Hibernate:从hibernate_sequence中选择next_val作为id_val进行更新 Hibernate:更新 hibernate_sequence 设置 next_val= ? next_val=? Hibernate:插入 UserDetails (Description, userName, userId) 值 (?, ?, ?) 休眠:插入车辆(名称,user_userId,数字)值(?,?,?) Hibernate:从UserDetails userdetail0_中选择userdetail0_.userId作为userid1_0_0_,userdetail0_.Description作为descript2_0_0_,userdetail0_.userName作为username3_0_0_ where userdetail0_.userId=? Hibernate:选择 vehicle0_.number 作为 number1_1_0_,vehicle0_.name 作为 name2_1_0_,vehicle0_.user_userId 作为 user_use3_1_0_,userdetail1_.userId 作为 userid1_0_1_,userdetail1_.Description 作为 descript2_0_1_,userdetail1_.userName 作为 username3_0_1_ from Vehicle vehicle0_ left outer join User_Details userdetail1_ on vehicle0_。 =userdetail1_.userId where vehicle0_.number=? 休眠:选择 vehicle0_.user_userId 作为 user_use3_1_0_,vehicle0_.number 作为 number1_1_0_,vehicle0_.number 作为 number1_1_1_,vehicle0_.name 作为 name2_1_1_,vehicle0_.user_userId 作为 user_use3_1_1_ from Vehicle vehicle0_ where vehicle0_.user_userId=? 用户名 ==> UserDetails [userId=0, userName=Vickram, vehicle=[Vehicle [number=1, name=Car]], Description=高白] 车辆 ===>UserDetails [userId=0, userName=Vickram, vehicle=[Vehicle [number=1, name=Car]], Description=Tall white]
【问题讨论】:
-
能否请您显示您执行的 hql 查询。
-
我没有写 hql 查询。 Hibernate 为我生成了查询。请参考下面的代码。谢谢
标签: hibernate