我知道如果我没有在spring数据中实现默认构造函数,则会抛出异常,实际上当我必须工作数据库时,我遇到了同样的异常。我从来不明白这个原因。请指教
答案 0 :(得分:3)
首先,为了清楚起见,它不是default constructor(你从未明确地实现默认构造函数,这就是它被称为默认值的原因),它是零参数构造函数。 (例如,Class#newInstance
会呼叫的那个。)
您需要在大多数对象/关系映射器中实现它,因为它们首先创建对象(使用零参数构造函数),然后将其各自的字段值分配给它。
话虽如此,如果你没有实现任何构造函数,那么编译器将提供的默认构造函数应该足以满足大多数OR映射器(我没有使用过spring-data)。默认情况下,它是一个零参数构造函数,具有与类相同的可访问性。但是如果你实现了任何构造函数,编译器就不会为你创建默认值,你必须自己提供零参数构造函数。