小编ozg*_*gur的帖子

JsonManagedReference与JsonBackReference

我想知道杰克逊@JsonManagedReference@JsonBackReference杰克逊之间的区别吗?

java jackson

31
推荐指数
5
解决办法
3万
查看次数

Spring Data Repository 保存未返回具有更新审核字段的实例

为什么repository.save(myEntity) 不返回带有更新审计字段的更新实体?

MyEntityRepository.save(myEntity) 和随后的 MyEntityService.save(myEntity) 生成的实例没有更新的 UpdatedOn 日期。我已经验证数据库中的设置正确,因此我知道审核正在工作。返回的实例的 updateOn 日期对于插入是正确的,但对于更新则不正确。我宁愿不必在每次保存后立即执行 findById,特别是如果意图是 save() 返回更新的附加实例。

假设 updateOn 的设置是通过 @PreUpdate 钩子进行的,并且该钩子是在通过repository.save()调用entityManager.merge()期间触发的,我不明白为什么不会在返回的实例上设置该值。

示例代码:

@Entity
@DynamicUpdate
@DynamicInsert
@Table(name = "my_entity", schema = "public")
@SequenceGenerator(name = "pk_sequence", sequenceName = "my_entity_seq", allocationSize = 1)
@AttributeOverrides({@AttributeOverride(name = "id", column = @Column(name = "id", columnDefinition = "int"))})
@EntityListeners(AuditingEntityListener.class)
public class MyEntity {

    protected Integer id;

    @LastModifiedDate
    private Date updatedOn;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pk_sequence")
    @Column(name = "id", nullable = false, columnDefinition = "bigint")
    public Integer getId() { …
Run Code Online (Sandbox Code Playgroud)

java spring jpa spring-data spring-data-jpa

5
推荐指数
1
解决办法
5212
查看次数

Spring数据填充@LastModifiedDate而不是@CreatedDate

我有以下Spring Boot示例应用程序。疯狂的事情是,如果我@EnableMongoAuditing在SampleApplication bean上添加注释,则lastModifiedDate不会被填充createDate。这是为什么?我在网上搜索,许多人createDate在更新过程中出现清空问题,但是我没有更新。

文件类别:

@Document
public class SampleBean implements Persistable<String> {

    @Id
    public String id;
    @CreatedDate
    public LocalDateTime createDate;
    @LastModifiedDate
    public LocalDateTime lastModifiedDate;

    public String name;

    @Override
    public String getId() {
        return id;
    }

    @Override
    public boolean isNew() {
        return id != null;
    }
}
Run Code Online (Sandbox Code Playgroud)

仓库接口:

@Repository
public interface SampleBeanRepository extends MongoRepository<SampleBean, String> {
}
Run Code Online (Sandbox Code Playgroud)

休息控制器:

@RestController
public class WebService {

    @Autowired
    private SampleBeanRepository repository;

    @RequestMapping("/insert")
    public String insert() {
        SampleBean sampleBean …
Run Code Online (Sandbox Code Playgroud)

java auditing spring-data spring-data-mongodb spring-boot

5
推荐指数
1
解决办法
6877
查看次数

用于过滤子类的JPA CriteriaBuilder方法是什么?

JPA 2.0提供了一种使用JPQL表达式TYPE按子类进行过滤的方法,例如:

SELECT e
FROM entity e
WHERE TYPE(e) = :entityType
Run Code Online (Sandbox Code Playgroud)

其中参数entityType是鉴别器列的值.

考虑到鉴别器列似乎不受限制,建议使用JPA标准构建器实现相同的方法是什么?

我正在使用JPA 2.1,到目前为止唯一的解决方案是将鉴别器列映射为Java实体中的只读字段,但我不确定这是否是受支持的功能.

java jpa criteria-api

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

是否可以创建动态JPQL查询?

我需要创建一个动态查询.我尝试使用JPQL,但不能.例如:

    public List get(String category, String name, Integer priceMin, Integer priceMax){
    List<Prod> list;
    String query = "select p from Prod p where 1<2 ";
    String queryCat="";
    String queryName="";
    String queryPriceMin="";
    String queryPriceMax="";
    String and = " and ";
    if (!category.isEmpty()){
        query+=and+"p.cat.name=:category ";
    }
    if (!name.isEmpty()){
        query+=and+"p.name=:name ";
    }
    if (priceMin!=null){
        query+=and+"p.price>=:priceMin ";

    }
    if (priceMax!=null){
        query+=and+"p.price<=:priceMax ";
    }
    return list = entityManager.createQuery(query)
            .setParameter("category", category)
            .setParameter("name",name)
            .setParameter("priceMin", priceMin)
            .setParameter("priceMax", priceMax)
            .getResultList();

}
Run Code Online (Sandbox Code Playgroud)

如果有所有参数,查询运行,但如果没有这样的参数category我有异常java.lang.IllegalArgumentException: Parameter with that name [category] …

java jpa jpql

3
推荐指数
1
解决办法
2041
查看次数

在IntelliJ中启动Spring Boot + thymeleaf应用程序的Faild

我无法在IntelliJ中使用thymeleaf启动基于Spring Boot的应用程序.我在maven中有我的项目,当我从命令行启动时:

java -jar myProject.war

一切正常.但是当我在IDE中配置运行应用程序时,我有以下错误:

[class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-02-25 19:00:24.881  WARN 4663 --- [           main] org.thymeleaf.templatemode.TemplateMode  : [THYMELEAF][main] Template Mode 'HTML5' is deprecated. Using Template Mode 'HTML' instead.
2017-02-25 19:00:25.017  WARN 4663 --- [           main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'viewResolver' defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$Thymeleaf3Configuration$Thymeleaf3ViewResolverConfiguration': Unsatisfied dependency expressed through constructor parameter 1; …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea maven spring-boot

3
推荐指数
1
解决办法
3291
查看次数

Swing图形不会显示 - Java

因此,如果我使用此代码,我会得到一个没有任何内容的屏幕.我应该显示一个绿色矩形.以前有这个问题,但无法解决它.

package _47b3n.squaregen;

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;

import javax.swing.JFrame;

public class Main extends Component {

private static final long serialVersionUID = 5547487570978675247L;

public static void main(String [] args) {
    new Main();
}

public Main() {
    JFrame frame = new JFrame();
    frame.setSize(200, 200);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);
    frame.setVisible(true);
    repaint();
}

public void render(Graphics g) {
    g.setColor(Color.GREEN);
    g.drawRect(10,10,10,10);
}

} 
Run Code Online (Sandbox Code Playgroud)

java swing awt

0
推荐指数
1
解决办法
40
查看次数