我是Spring生态系统的新手,我想知道@Entity类是否应该总是有getter和setter,并且所有属性都应该是私有的?JPA(或Hibernate)将需要这些方法(getter/setter)来获取值或在数据库中设置它们,这是正确的吗?
jvlzgdj91#
来自JakartaEE JPA 3.0规范第2.2节:持久性字段和属性:
持久化提供者运行时[1]通过JavaBeans风格的属性访问器(“属性访问”)或示例变量(“字段访问”)访问实体的持久化状态。...类的示例变量必须是私有的、受保护的或包可见性的,与使用字段访问还是属性访问无关。使用属性访问时,属性访问器方法必须是公共的或受保护的。....这意味着访问器不是严格要求的,但强烈推荐使用。替代方法(字段访问)被视为代码气味。
zed5wv102#
是的,你应该使用@entity,它也有助于其他人阅读你的代码,它记录了它:)
2条答案
按热度按时间jvlzgdj91#
来自JakartaEE JPA 3.0规范第2.2节:持久性字段和属性:
2.2.持久性字段和属性
持久化提供者运行时[1]通过JavaBeans风格的属性访问器(“属性访问”)或示例变量(“字段访问”)访问实体的持久化状态。
...
类的示例变量必须是私有的、受保护的或包可见性的,与使用字段访问还是属性访问无关。使用属性访问时,属性访问器方法必须是公共的或受保护的。
....
这意味着访问器不是严格要求的,但强烈推荐使用。替代方法(字段访问)被视为代码气味。
zed5wv102#
是的,你应该使用@entity,它也有助于其他人阅读你的代码,它记录了它:)