java - JPA 中的异常配置到底是什么?

标签 java jpa exception configuration

在一门关于 JPA 的类(class)中​​,他们说:

JPA uses configuration by exception for default relationship mapping

在此示例中:

@Entity
public class Student {
    @Id
    private Long id;
    private String name;
    private Float rollno;

    public Student()
    {
    }
    //set of setters and getters
}

他们说:

If you do not provide @Entity and @Id annotations, still Student will behave like a POJO and not be persisted.

我需要一些帮助来理解“异常”一词在此上下文中的用法。

JPA 中的异常配置是什么?

最佳答案

“Exception”一词的意思是“不寻常”。因此,“异常(exception)配置”意味着您指定某种默认的完成方式,然后如果在代码中的特定位置您希望以不同的方式完成某些操作,那么您仅在该位置提供额外的配置。因此,本质上,只有需要特殊功能的地方才需要接收额外的配置。

因此,例如,当您使用 @Access( AccessType.FIELD ) 注释 JPA 实体时,您是在说 JPA 在整个实体中使用的默认访问机制应该是字段访问。这意味着 JPA 应该通过直接访问类的字段来持久保存您的类。但是,如果在类中的某个时刻,您希望 JPA 使用一个 getter 而不是字段,那么您可以仅在该 getter 上指定一个附加的 @Access( AccessType.PROPERTY ) 注释,JPA 将使用该 getter。

同样,对于 JPA 支持的大多数配置选项,都有默认行为,但您始终可以根据具体情况提供额外的注释来自由覆盖此默认行为。

与异常(exception)配置相反的是,如果 JPA 要求您指定每个字段和 getter 的访问类型,这将非常繁琐,或者如果 JPA 要求您提前指定所有配置而不允许您这样做根据具体情况选择不同的东西。

关于java - JPA 中的异常配置到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34125441/

相关文章:

java - 阻止 ArrayOutOfBoundsException 在 Java 中停止程序执行

python - Django 使用 try : and except:

java - 两种不同的对象类型作为参数,返回一个类型的对象

java - 很难收到此类型的安全警告

java - 查找当前 EntityManagerFactory 的当前持久化单元

mysql - java.sql.SQLSyntaxErrorException : Unknown column . JPA 实体问题?

Xamarin随机集合异常修改

java - 带有 javac "-parameters"的 JSON ObjectMapper 在通过 maven 而不是通过 IntelliJ IDEA 运行时的行为

java - 如何通过 Web 服务器发送商业应用程序的数据?

java - JPA Hibernate HSQLDB - VARBINARY() 字段和尝试选择时出错