如果您要设置桌子,请不要那样做!
让我们更好地知道为什么!
在JPA中,通过笔记本映射到桌子上的课程。在此注释中,我们指出类是JPA实体,在这种情况下,它会自动映射到表格。
为此,默认情况下将JPA配置为将类名称求解到表:
1- Java中的类是由Pascalcase定义的。
2-类的名称转换为snake_case。
3-此转换名称用于数据库中的表名。
进入,通过此算法:
CustomerDetails -> customer_details
在原始示例的情况下:
Product -> product
仅此而已,我们已经消除了对@Table
表示法的需求。
我们还通过在jpql查询中设置实体的名称来定义表的名称。这是因为桌子的名称通过您的名字在亲爱的名字中解决。首先,默认情况下,它通过实体类的名称解决,我们可以通过笔记本更改该名称:
@Entity(name = "blablabla")
正在这样做,我们可以更改将要映射的表的名称,以及我们将用于JPQL DARIES的名称。
我们可以有边缘案例来定义这两个注释,即表具有特定名称的时候,在JPQL daries中,我们将参考类名称,示例:
@Entity
@Table(name="products")
public class Product {
}
在这种情况下,表的名称为复数,por©m在查询jpql中,我们将使用类名称:
@Query("Product p where p.vendorId = :vendorId")
Product findProductFromVendor(int vendorId);
在这种情况下,将在SQL中生成的查询将如下:
SELECT * FROM products WHERE vendor_id = 10
另一个边缘情况是,如果我想让亲爱的实体的名称与班级名称不同,并且表中的名称与两者不同:
@Entity(name="prod")
@Table(name="products")
public class Product{
}
必不可少的理解说明和框架的操作,我们用来安排时会陷入不必要的冗余!