我的目标是从汽车模型列表中创建一个 Vuetify 2 数据表。数据需要按供应商与自定义组标题行进行分组,并且每个车型的项目行也需要自定义。下面是一个非常简化的示例,用于显示我的主要问题,即Vuetify 完全忽略了我的 item-slot 模板,而是使用默认行为。
如何让 Vuetify 也使用该模板,同时避免为每个项目列使用单个模板?...因为在我的真实示例中,有很多列需要自定义。
维代码:
<div id="app">
<v-app>
<v-data-table
dense
disable-sort
:headers="headers"
hide-default-footer
:items="cars"
item-key="id"
group-by="vendor"
>
<template v-slot:group.header="{items, isOpen, toggle}">
<th colspan="2">
<v-icon @click="toggle"
>{{ isOpen ? 'mdi-minus' : 'mdi-plus' }}
</v-icon>
{{ items[0].vendor }}
</th>
</template>
<template v-slot:item="{ item }">
<tr>
<td><strong>{{ item.name }}</strong></td>
<td>{{ item.power }} HP</td>
</tr>
</template>
</v-data-table>
</v-app>
</div>
Run Code Online (Sandbox Code Playgroud)
Javascript代码:
new Vue({
el: '#app',
vuetify: new Vuetify(),
data () {
return {
headers: [
{ text: …Run Code Online (Sandbox Code Playgroud) 我正在开发struts 2和hibernate 3中的应用程序.
我有3张桌子
Inspection与...相关联InspectionMission并InspectionMission与之相关联Timeline.
现在我有以下问题.我在HQL中编写了以下查询
public List getQuartewiseInspectionList(){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Query q = session.createQuery(
"select count(i.inspectionId) as tot_inspections,t.year,t.quarter" +
" From Inspection as i " +
" inner join i.inspectionMission as im inner join im.timeline as t" +
" GROUP by t.year,t.quarter");
return q.list();
}
Run Code Online (Sandbox Code Playgroud)
我想获取结果如下
result[0][tot_inspections] = "6"
result[0][year] = "2009";
result[0][quarter] = "Q2";
result[1][tot_inspections] = "3"
result[1][year] = "2009";
result[1][quarter] = "Q3";
Run Code Online (Sandbox Code Playgroud)
等等,以便我可以在jsp struts中显示它,如下所示:
在JSP中,我编写了以下代码 …
我将 Hibernate 3.5.6-Final 与用于生产的 Oracle 数据库和用于集成测试的 H2 数据库一起使用。ID 创建的 Hibernate 映射看起来像这样,每个实体都扩展了 EasyPersistentObject:
@MappedSuperclass
public class EasyPersistentObject implements Serializable {
@Id
@SequenceGenerator(name = "hibernate_seq", sequenceName = "hibernate_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "hibernate_seq")
protected Integer id;
Run Code Online (Sandbox Code Playgroud)
在每次 JUnit 集成测试之前,我都会从数据库中删除所有数据
new SchemaExport(configuration).create(false, true);
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我为序列生成增加了 allocationSize。将其提高到例如 10 将在插入测试数据时使用 UniqueKeyConstraintViolations 破坏多个测试。
例如:
所以我的问题是:有没有办法在每次测试之前重置 Hibernates …
我设法将 Jackson 配置为序列化一个类,只需使用
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
Run Code Online (Sandbox Code Playgroud)
但是我无法将这个非静态类的 JSON 字符串反序列化为没有任何参数化构造函数或设置器的对象。这是否可能 - 我认为它应该通过反思,但我不知道如何......
以下是需要通过的 2 个测试才能实现我所需要的:
public class ObjectMapperTest {
private ObjectMapper mapper;
@Before
public void init() {
mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
}
@Test
public void serialize() throws Exception {
Payload payloadToSerialize = new Payload();
payloadToSerialize.data = "testData";
String serializedPayload = mapper.writeValueAsString(payloadToSerialize);
assertThat(serializedPayload, is("{\"data\":\"testData\"}"));
// --> OK
}
@Test
public void deserialize() throws Exception {
Payload deserializedPayload = mapper.readValue("{\"data\":\"testData\"}", Payload.class);
assertThat(deserializedPayload.data, is("testData"));
// com.fasterxml.jackson.databind.JsonMappingException:
// No suitable constructor found for type …Run Code Online (Sandbox Code Playgroud) 我在 Java/Hibernate 项目中使用 IntelliJ。我还为该项目分配了一个数据源,因此大多数非现有列的 JPA 验证错误都消失了。
剩下的唯一错误是在@Embeddable 类中定义的这些列,例如:
@Embeddable
public class MyEmbeddedClass {
@Column(name="my_embedded_column")
private String myEmbeddedColumn;
Run Code Online (Sandbox Code Playgroud)
IntelliJ 不断警告我这些列不存在于数据模型中:
“无法解析列‘my_embedded_column’”
有什么方法可以让 IntelliJ 在不禁用整个 JPA 验证功能的情况下跳过 @Embeddable 类的这些 JPA 验证检查,还是我应该为 JPA 验证插件创建错误票证?
请考虑这个例子。
一个示例Web应用程序要求scheduler.start()其启动。调度程序配置为将其作业存储在DB中。
该应用程序被复制到六个Web服务器上。
因此,如果启动六个Web服务器,则在单个DB上将有六个具有相同名称的调度程序。如https://quartz-scheduler.org/documentation/quartz-2.1.x/cookbook/MultipleSchedulers中所述:
切勿针对运行(start()ed)具有相同调度程序名称的任何其他实例的同一组数据库表启动(scheduler.start())非集群实例。您可能会遇到严重的数据损坏,并且肯定会遇到不稳定的行为。
因此,这将失败。
我的问题是,如果我确定我所有的工作@DisallowConcurrentExecution都会胜任工作,否则仍然失败?
如果@DisallowConcurrentExecution没有帮助,我应该手动将一台服务器配置为某些主机
public class StartUp implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
if(THIS_IS_MASTER_TOMCAT){
scheduler.start()
}
}
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?