今天我偶然发现了一个奇怪的错误。Spring Boot 应用程序中的 Java 持久性应用程序编程接口 (JPA) 实体之一无法正常工作。我将问题归结为一列:
@javax.persistence.Column(name = "NameWrittenInPascalCase")
java.lang.String c;
Run Code Online (Sandbox Code Playgroud)
当我检查 Spring Boot/Hibernate 生成的结构化查询语言 (SQL) 查询时,我发现了问题。看来 Spring Boot 或 Hibernate 将其转换NameWrittenInPascalCase为name_written_in_pascal_case(只是用蛇形写法编写)。(当然,在数据库中,我的列名是用PascalCase写的)。
看在上帝的份上,为什么?
以及如何防止它这样做?
如果您需要其他信息,我使用 Spring Boot 版本 2.5.7。
如何在 JavaScript 中重写浏览器的滚动功能?
我能够找到的函数是scroll,scrollBy和scrollTo(来自window对象)。但是,如果我尝试使用标准过程覆盖它们,就像任何其他函数一样,例如,通过执行以下代码,window.scroll = function(parameter){}它不会对浏览器产生任何影响。因此,如果我在执行上述代码(对于所有 3 种方法)后尝试滚动页面,窗口仍然会滚动。
浏览器还有其他用于滚动的功能吗?如果是这样,我应该重写哪个函数来获得自定义滚动行为?
当然,我使用的是 Google Chrome(最新版本)。
因此,在 Vue 组件中,当您在模板中编写标签时,您可以像在普通 XML 中一样指定静态参数,或者可以通过在参数名称前面添加冒号来指定响应式参数。
现在,我偶然发现了这个Vuetify 示例,并使用了该v-menu组件。例如,该组件具有一个close-on-click属性,在此示例中,该属性被标记为反应性的。这是合乎逻辑的,因为在本例中,当您更改开关的位置时,该属性也会更新。
但是,您也可以指定一个常量。而且,由于常量值不会改变,因此在 Vue 中,它们不必是响应式的。但是,在这里,如果我指定close-on-click(不带冒号),它将无法正常工作。除非它是反应性的,否则它不会读取此属性。
我的问题是,为什么即使我们指定一个常量作为它的值,这个属性也需要被标记为反应性的?
那么,更准确地说:为什么<v-menu close-on-click=false不起作用,但是却<v-menu :close-on-click="false"起作用了?
false是一个常量,因此,该属性不应标记为反应性的。
javascript ×2
entity ×1
hibernate ×1
java ×1
scroll ×1
spring-boot ×1
sql ×1
vue.js ×1
vuetify.js ×1