小编san*_*ris的帖子

从spring-boot:run获取命令行参数

从命令行启动spring-boot应用程序(mvn spring-boot:run)然后在main()中获取它们是否有任何方法可以输入参数?

java command-line-arguments maven spring-boot

64
推荐指数
4
解决办法
7万
查看次数

JPA中的Java 8 Date Time api

在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)

spring hibernate jpa java-8 spring-data-jpa

14
推荐指数
2
解决办法
6544
查看次数

在angularjs中强制执行asyncvalidators

我的问题 - 有一个所有人都可以访问的网页.如果未注册的用户进入并在提交时保存表单,则会有一个登录模式,要求登录.

如果用户是新用户,他将注册并再次按提交.如果用户不是新用户,他将登录并再次按提交.

如果注册用户访问,则表单名称正在使用异步验证器进行验证:

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(),但在我的控制器中访问它的位置?

谢谢!

angularjs

6
推荐指数
1
解决办法
520
查看次数

spring jpa - 具有相同标识符值的另一个对象已与会话关联

通过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)

我假设它会被保存,如果存在的话.

但是我得到了一个例外 - 具有相同标识符值的不同对象已经与会话相关联

java spring jpa

4
推荐指数
1
解决办法
2万
查看次数

Gradle-不要在多模块项目中创建父构建

我有这样的结构项目:

?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)

java build gradle

-2
推荐指数
1
解决办法
680
查看次数