我在Spring应用程序中有不同的用户类型。我实现了某种继承。所有users类型都从User类扩展而来。我想这里两张桌子应该够了:
“用户”将具有:id、用户名、密码、第一名、最后名、电子邮件、手机、城市、街道、邮政编码
BaseEntity:
@MappedSuperclass
public class BaseEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
}
用户:
@Entity
@Table(name="users")
@Inheritance(strategy = InheritanceType.JOINED)
public class User extends BaseEntity{
@Column(name = "username")
private String userName;
@Column(name = "password")
private String password;
@Column(name = "email")
private String email;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "users_roles", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
private Collection<Role> roles;
}
CorporateCustomer:
@Entity
@Table(name="users_corporate")
public class CorporateCustomer extends User{
@Column(name = "company_name")
private String companyName;
@Column(name = "vat_number")
private String vatNumber;
@OneToMany(mappedBy = "customer")
private List<Appointment> appointments;
}
@Entity
//@Table <---- i think it is not needed here?
public class RetailCustomer extends User {
@OneToMany(mappedBy = "customer")
private List<Appointment> appointments;
}
@Entity
//@Table <---- i think it is not needed here?
public class Provider extends User{
@OneToMany(mappedBy = "provider")
private List<Appointment> appointments;
@ManyToMany
@JoinTable(name="works_providers", joinColumns=@JoinColumn(name="id_user"), inverseJoinColumns=@JoinColumn(name="id_work"))
private List<Work> works;
@OneToOne(mappedBy="provider", cascade = {CascadeType.ALL})
private WorkingPlan workingPlan;
}
如果Provider和RetailCustomer的类中没有@Table注释,hibernate将如何区分它们?
如果不使用@table指定表名,则表名将与实体名相同。
当我调用ProviderRepository.findAll()时,它现在将如何从“Users”表中哪些行是provider,哪些行是RetailCustomer?
select ... from Provider p
inner join User u on p.id=u.id
select ...,
case
when r.id is not null then 1
when p.id is not null then 2
when u.id is not null then 0
end as clazz_0_
from User u
left outer join Provider p on p.id=u.id
left outer join RetailCustomer r on r.id=u.id
我有一个类型的参数
问题内容: 我从“ Head First Java”学习“多态”,然后想到了这个概念。有人可以举例说明吗? 编译器检查引用类型的类,而不是对象类型。 那么引用类型和对象类型之间有什么区别? 问题答案: 我认为它们对“对象类型”和“引用类型”的使用不是标准化的,但这是我的解释。 考虑以下代码: 该 引用 是类型的。它引用的 对象 是类型。 因此,“引用类型”为,“对象类型”为。 造成这种混乱的原因是
在上图实例中,可以通过ShowroomItem的引用或interface Vehicle的引用来引用myCar。相应地,客户端驱动程序/销售工程师将获得功能访问权。 我同意在实现阶段(例如Java),这里不需要类型标识,我们将把myCar当作自己使用的基类型(任一接口)的实例。 但在顺序图中(为了清楚起见),我无法指出myCar的驾驶员引用应该是Vehicle的,而SalesEngineer的引用
本文向大家介绍js对象类型,基本对象类型以及引用对象类型的区别?相关面试题,主要包含被问及js对象类型,基本对象类型以及引用对象类型的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 分为基本对象类型和引用对象类型 基本数据类型:按值访问,可操作保存在变量中的实际的值。基本类型值指的是简单的数据段。基本数据类型有这六种:undefined、null、string、number、bool
问题内容: 有以下代码: 问题: 为什么赋值运算符对基本类型和类对象的工作方式不同(对于按值复制的基本类型,对于按引用复制的类对象)? 如何仅按值复制类对象? 如何对C ++ int&b = a 这样的基本类型进行引用? 问题答案: 这是许多Python用户的绊脚石。对象引用的语义与C程序员习惯的语义不同。 让我们来考虑第一种情况。当您说时,将创建一个具有值的新对象,并创建了对其的两个引用(一个是
本文向大家介绍Jquery对象和Dom对象的区别分析,包括了Jquery对象和Dom对象的区别分析的使用技巧和注意事项,需要的朋友参考一下 在讨论之前,先约定好定义变量的风格。 如果获取的对象是jQuery对象,那么在变量前加上$,例如: 如果获取的是DOM对象,则定义如下: jQuery对象不能使用DOM中的方法,但是如果对jQuery对象所提供的方法不熟悉,或者jQuery没有封装想要的方