从命令行启动spring-boot应用程序(mvn spring-boot:run)然后在main()中获取它们是否有任何方法可以输入参数?
在jpa中集成Java 8 Date Time api的最佳方法是什么?
我添加了转换器:
@Converter(autoApply = true)
public class LocalDatePersistenceConverter implements AttributeConverter<LocalDate, Date> {
@Override
public Date convertToDatabaseColumn(LocalDate localDate) {
return Date.valueOf(localDate);
}
@Override
public LocalDate convertToEntityAttribute(Date date) {
return date.toLocalDate();
}
}
Run Code Online (Sandbox Code Playgroud)
和
@Converter(autoApply = true)
public class LocalDateTimePersistenceConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime entityValue) {
return Timestamp.valueOf(entityValue);
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp databaseValue) {
return databaseValue.toLocalDateTime();
}
}
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好,但我应该如何使用JPQL进行查询?我正在使用Spring JPARepository,目标是选择日期与给定日期相同的所有实体,唯一的区别是它作为LocalDateTime保存在实体中.
所以:
public class Entity {
private LocalDateTime dateTime;
...
}
Run Code Online (Sandbox Code Playgroud)
和:
@Query("select case …
Run Code Online (Sandbox Code Playgroud) 我的问题 - 有一个所有人都可以访问的网页.如果未注册的用户进入并在提交时保存表单,则会有一个登录模式,要求登录.
如果用户是新用户,他将注册并再次按提交.如果用户不是新用户,他将登录并再次按提交.
如果注册用户访问,则表单名称正在使用异步验证器进行验证:
app.compileProvider.directive('nameAvailable', ['$q', '$http', 'service', function ($q, $http, service) {
return {
restrict: 'AE',
require: 'ngModel',
link: function ($scope, elem, attrs, ngModel) {
ngModel.$asyncValidators.queryName = function (queryName) {
--logic
}
}
}
}]);
Run Code Online (Sandbox Code Playgroud)
如果注册用户将此表单保存为同名,那么如果他填写然后登录则会失败.
问题是 - 如何在用户登录后强制对该字段进行验证?
我发现的一件事是使用ngModelController并调用validate(),但在我的控制器中访问它的位置?
谢谢!
通过SO搜索,但看起来没有类似的情况.
有一个实体国家/地区,只有一个字段:
public class Country {
@Id
@Column(name = "COUNTRY_CODE")
private String countryCode;
public boolean equals(Object o) {}
public int hashCode() { }
}
Run Code Online (Sandbox Code Playgroud)
另一个有这些条目集合的类:
public class Product {
@ManyToOne(fetch = EAGER, cascade = ALL)
@JoinColumn(name = "COUNTRY_CODE")
private Country country;
}
Run Code Online (Sandbox Code Playgroud)
设置国家/地区时:
product.setCountry(new Country("lv"))
Run Code Online (Sandbox Code Playgroud)
我假设它会被保存,如果存在的话.
但是我得到了一个例外 - 具有相同标识符值的不同对象已经与会话相关联
我有这样的结构项目:
?project
?
??? build.gradle
??? module 1
? ?
? ??? build.gradle
? ??? module 1.1
? ??? module 1.2
?
??? module 2
?
??? build.gradle
??? module 2.1
??? module 2.2
Run Code Online (Sandbox Code Playgroud)
我的问题是我已经为项目,模块1和模块2创建了构建。但是我不需要它们,只需要从模块1.1、1.2、2.1和2.2构建。
在子模块build.gradle中:
project(":modules 1") {
ext.buildables = [
project(':modules-1:modules.1.1'),
project(':modules-1:modules.1.2')]
}
project(":modules-1:modules.1.1") {
dependencies {
...
}
}
Run Code Online (Sandbox Code Playgroud)
在root build.gradle中:
subprojects {
apply plugin: 'java'
sourceCompatibility = 1.6
targetCompatibility = 1.6
}
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
编辑:
运行gradle build后,将出现以下目录结构:
?project
?
??? build.gradle
??? build (not wanted)
??? module …
Run Code Online (Sandbox Code Playgroud)