我有一个带有(java.util.)Date属性的项目列表,我想为从最早的日期到现在的每一天创建一个DataSeriesItem .这是一个带有时间轴的图表系列.
该DataSeriesItem的创建将如下所示:
DataSeriesItem seriesItem = new DataSeriesItem(Date, occurrenceCount);
其中occurrenceCount
Date属性与该日匹配的Items的数量.第一个参数也可以是类型java.time.Instant
我已经设法找到一种有效的方法,但我确信我的方法非常糟糕,并且可以用一个流来完成,也许两个.但是,我是溪流的初学者,不能用我的知识来做.
这有可能与流?它怎么可能会像约?
我不是让你真正做到我的整个重新执行,但只有我指向正确的streamfunctions和映射,你会使用,而加分它的一个例子.
这是我丑陋的解决方案:
List<?> items = myItems;
Collection<Date> foundDates = new HashSet<>();
for (Object item : items) {
foundDates.add((Date)getPropertyValueFromItem(item, configurator.getDateProperty()));
}
//====== This is the part I am asking about ======//
Map<Instant, Integer> foundInstants = new HashMap<>();
foundDates.stream().sorted(Date::compareTo).forEach(date -> {
Calendar c = Calendar.getInstance();
c.clear(); // clear nanoseconds, or else equals won't work!
c.set(date.getYear()+1900, date.getMonth(), date.getDate(), 0, 0, 0);
if(!foundInstants.containsKey(c.toInstant())){ …
Run Code Online (Sandbox Code Playgroud) 我有一个LoginView,我基本上从面包店入门项目复制.
当我运行面包店应用程序并尝试使用错误的凭据登录时,会出现另一个带有错误消息的div.
但是,此错误消息div不会出现在我的视图中.因为我已经适应了模板,我们的企业设计的,但我记得,这个问题已经存在的两个文件时LoginView.java
,并login-view.html
仍然从面包房应用程序的精确副本.我仔细检查过.error不只是被我自己的css隐藏 - 在DOM中不存在div.error.
访问时调试LoginView /login?error
(访问login?error=true
是相同的)表明它无法识别任何queryParameters! - >为什么?
我的(Spring)安全配置在登录方面也是一样的:
.and()
.formLogin()
.loginPage(("/login")).permitAll()
.loginProcessingUrl("/login")
.failureUrl("/login?error")
Run Code Online (Sandbox Code Playgroud)
编辑:根据评论中的要求,我将添加模板的相关部分.但是,错误是100%不在模板中 - 正如我在调试中看到的那样,错误发生LoginView.java
在afterNavigation方法中.
<dom-module id="login-view">
<template>
<style include="shared-styles">
.....
</style>
.....
<template is="dom-if" if="[[error]]">
<div class="error">
<iron-icon icon="vaadin:exclamation-circle-o" class="error__icon"></iron-icon>
<p class="error__text">
Der Benutzername und/oder das Passwort stimmt nicht. Bitte überprüfe deine Angaben und versuche es erneut.
</p>
</div>
</template>
....
</template>
<script>
class LoginView extends Polymer.GestureEventListeners(Polymer.Element) {
static get is() {
return 'login-view'; …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用swagger-codegen生成的代码来使用我的REST服务,这是在我的swagger.json中定义的(由服务器端由springfox 2.9.0提供)
我正在生成api,模型和支持文件.
但每次我尝试使用GET api时,都会发生错误:
avax.ws.rs.client.ResponseProcessingException: Problem with reading the data, class xxx.xxx.generatedmodels.MyEntity, ContentType: application/json;charset=UTF-8.
....
Caused by: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "@id" (Class xxx.xxx.generatedmodels.MyEntity), not marked as ignorable
我的猜测是生成的Model类需要类注释@JsonIdentityInfo(generator = JSOGGenerator.class)
,就像它们在服务器端模型上一样.(也许也许@JsonIgnoreProperties(ignoreUnknown = true)
?)
这个假设是否正确?
如果是,那么有没有办法配置swagger-codegen在每个模型上添加这个注释?
如果不是,我该怎么办才能让ApiClient反序列化收到的实体?
我的swagger-codegen配置如下所示:
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>https://example.com/v2/api-docs</inputSpec>
<language>java</language>
<generateApis>true</generateApis>
<generateModels>true</generateModels>
<generateSupportingFiles>true</generateSupportingFiles>
<generateModelDocumentation>false</generateModelDocumentation>
<generateModelTests>false</generateModelTests>
<modelPackage>xxx.xxx.generatedmodels</modelPackage>
<apiPackage>xxx.xxx.generatedapi</apiPackage>
<invokerPackage>xxx.xxx.generatedinvoker</invokerPackage>
<configOptions>
<dateLibrary>java8</dateLibrary>
<sourceFolder>src/main/java</sourceFolder>
<java8>true</java8>
</configOptions>
<library>jersey2</library>
<output>../generated-client</output>
<groupId>xxx.xxx</groupId>
<artifactId>generatedapiclient</artifactId>
<artifactVersion>1.0.0</artifactVersion>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
响应看起来像这样(严重缩短.有许多对象属性也有"@id".这个例子匹配swagger.json进一步向下): …
我和Many-to-Many
班级之间有关系.因为我想获得有关辅助表的其他信息,所以我必须创建一个帮助类,如下所述:使用JPA和Hibernate时,使用额外列映射多对多关联的最佳方法Foo
Bar
FooBar
我创建了一个Foo,并创建了一些条形图(保存到DB).当我然后使用其中一个条添加到foo
foo.addBar(bar); // adds it bidirectionally
barRepository.save(bar); // JpaRepository
Run Code Online (Sandbox Code Playgroud)
然后创建FooBar的DB条目 - 正如预期的那样.
但是,当我想再次从foo中删除相同的栏时,使用
foo.removeBar(bar); // removes it bidirectionally
barRepository.save(bar); // JpaRepository
Run Code Online (Sandbox Code Playgroud)
然后,不会从数据库中删除先前创建的FooBar条目.通过调试,我看到foo.removeBar(bar);
确实删除了双向.没有异常被抛出.
难道我做错了什么?我很确定它与Cascading选项有关,因为我只保存吧.
我尝试过的:
添加orphanRemoval = true
@OneToMany - 注释,但没有用.我认为这是正确的,因为我不删除 Foo和Bar,只删除他们的关系.
从@OneToMany注释中排除CascadeType.REMOVE,但与orphanRemoval相同我认为这不适用于这种情况.
编辑: 我怀疑在我的代码或模型中必须有一些东西与我的orphanRemoval混淆,因为现在已有2个答案说它有效(带orphanRemoval=true
).
最初的问题已得到解答,但如果有人知道什么可能导致我的孤儿无法工作,我会非常感谢您的意见.谢谢
代码:Foo,Bar,FooBar
public class Foo {
private Collection<FooBar> fooBars = new HashSet<>();
// constructor omitted for brevity
@OneToMany(cascade = CascadeType.ALL, mappedBy = "foo", fetch = FetchType.EAGER)
public Collection<FooBar> getFooBars() …
Run Code Online (Sandbox Code Playgroud) 如何将行索引列添加到网格中,该列不会按照用户对行进行排序?
该解决方案不得包括对任何聚合物模板的更改,而应在 java 中完成。
我有一个 CheckBoxGroup 显示 8 个项目。默认演示文稿是垂直的,这在我的布局中看起来不太好。
但是如果我将演示文稿设置为水平使用
checkBoxGroup.addStyleName(ValoTheme.OPTIONGROUP_HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)
那么8个项目没有足够的空间。所以我被迫使用垂直样式,但我对此并不满意。
有没有办法水平显示单个 CheckBoxGroup,但使用 2(或更多)行?
编辑:
我通过将复选框的样式设置为向左浮动(带有组的水平显示),找到了解决问题的快速方法。它现在在第一行显示 6 个复选框,在第二行显示 2 个。它仍然不漂亮,但比其他 2 个选项更好。我仍然期待收到更好的解决方案!(如果没有,那就这样吧,但至少我知道这是不可能的)
我正在制作一个包含许多 TextFields 和 ComboBoxes 和 CheckBoxes 的视图,其中它们的值由单个 Binder 处理。没有问题。
但是:现在我想在视图中添加 3 个 RadioButton,这些值应该来自同一个 Binder。每个 RadioButton 绑定到不同的布尔字段,这些字段中只有 1 个可以同时为真(RadioBoxes 的完美要求)。
问题 #1:没有用于简单 RadioButton 的组件(就像 CheckBox 一样),我只能找到 RadioButtonGroup。所以我想我将不得不和那个人一起工作。
问题#2:在Vaadin Docs 中,它特别指出:
CheckBoxGroup组件的优点在于,由于它维护单个复选框对象,因此您可以轻松获取当前选定项的数组,并且您可以轻松更改单个组件的外观并将其与 Binder 一起使用。
但是我找不到绑定RadioButtonGroup项目的方法,也找不到任何地方提到它。
有没有办法在 RadioButtonGroup 中绑定单个项目?
如果没有,那么我担心我将不得不使用 CheckBoxes,其中 RadioButtons 将是一种更合乎逻辑的方法。
下面是一些代码来演示我想要完成的事情:
// FooBar Class
private boolean foo = true;
private boolean bar = false;
private boolean fooBar = false;
// constructor, getters and setters
Run Code Online (Sandbox Code Playgroud)
// My View
Binder<FooBar> binder = new Binder<>();
binder.setBean(new …
Run Code Online (Sandbox Code Playgroud) 在Vaadin Flow中,不存在本质上是可滚动布局的组件。在Vaadin 8中,这是由专家小组完成的。
有什么方法可以在Vaadin Flow中实现可滚动组件?
我在为网格中的每一行设置背景颜色时遇到问题。我使用 setClassNameGenerator,但这不起作用。但是,如果我为整个网格设置 className,那么我可以看到一些结果。最后,我想根据某些条件为行着色,但现在我只是硬编码一个“失败”的类,看看着色是否有效。
这是我的 CSS 代码:
执行此代码段不会改变任何内容
但是,这使整个背景按预期变黄,因此 CSS 导入没问题。
任何帮助都会很棒。谢谢
我们正在使用 Vaadin 14. 我们应该将项目中的哪些文件夹提交给版本控制?文件夹 node_modules 非常大,非常耗时,我们应该提交这个吗?
vaadin ×8
java ×5
vaadin-flow ×3
vaadin14 ×2
vaadin8 ×2
cascade ×1
datetime ×1
hibernate ×1
java-8 ×1
java-stream ×1
jpa ×1
jsog ×1
scrollview ×1
svn ×1
swagger ×1
vaadin-grid ×1