JavaScript中的脑筋急转弯

1、 undefined和未定义(not defined)是一样的吗?
答:不是。

var a    // 定义a但不赋值
a        // 回显:undefined
b        // 回显:Uncaught ReferenceError: b is not defined

可以看出,a的值是undefined,而访问b抛出异常。

2、 考虑下面的函数:

- 阅读剩余部分 -

使用web.xml方式配置Spring Data Rest的方式

直接将一下代码加入到web.xml中,可以实现Spring Data Rest拦截/rest地址作为数据访问接口。

    <servlet>
        <servlet-name>rest</servlet-name>
        <servlet-class>org.springframework.data.rest.webmvc.RepositoryRestDispatcherServlet</servlet-class>
        <init-param>
            <param-name>dispatchOptionsRequest</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>rest</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

Spring Data Rest暴露主键配置方法

下面的代码通过exposeIdsFor函数暴露了实体类的主键。

@Configuration
class RestMvcConfiguration{

    @Bean
    public RepositoryRestConfigurer repositoryRestConfigurer() {

        return new RepositoryRestConfigurerAdapter() {
            @Override
            public void configureRepositoryRestConfiguration(
                    RepositoryRestConfiguration config) {
                config
                        .exposeIdsFor(CompositeCase.class)
                        .exposeIdsFor(ExperimentAnswer.class)
                        .exposeIdsFor(Classes.class)
                        .exposeIdsFor(Exercise.class)
                        .exposeIdsFor(ExerciseAnswer.class)
                        .exposeIdsFor(Homework.class)
                        .exposeIdsFor(HomeworkAnswer.class)
                        .exposeIdsFor(Knowledge.class)
                        .exposeIdsFor(Problem.class)
                        .exposeIdsFor(Experiment.class)
                        .exposeIdsFor(Subject.class);

            }
        };
    }
}

Hibernate自动生成创建时间和更新时间

Hibernate 4.3.8.final中,可以使用@CreateTimestamp以及@UpdateTimestamp注解自动生成时间戳。当然还需要配合@Generated注解使用。代码实例如下:

// 这是一个Hibernate实体(entity)
public class Example {

    // ......
    
    @CreationTimestamp
    @Temporal(TemporalType.TIMESTAMP)
    @Column(updatable = false)
    private Date createTime;

    @UpdateTimestamp
    @Temporal(TemporalType.TIMESTAMP)
    private Date lastModified;
    // ......
}