草庐IT

data-synchronization

全部标签

java - spring-jdbc 与 spring-data-jdbc 以及它们支持什么

我很好奇spring-jdbc(我在最新的spring版本中缺少的)和spring-data-jdbc之间有什么区别。有区别还是只是重命名(在存储库中我看不到这个)?是否有某处描述了版本支持的目标(DB/JDBC规范/JDK)是什么?例如对于来自oracle的普通JDBC,我可以在这里看到该信息:http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#01_03_1(例如:OracleDB12.1/12cR1上的Java7/Java8上的ojdbc7.jar中的JDBC规范4.

java - 混合 volatile 和 synchronized 作为读写锁

考虑一个原始类型变量,有很多线程读取和一些线程写入,下面的代码能正常工作吗?如果会,它提供的性能是否优于1)。在所有方法上声明同步;2).使用显式ReadWriteLock?这是一个常见的模式吗?如果不是,这种情况通常使用什么模式?目前这对我来说效果很好,但我觉得同时使用volatile和synchronized有点多余。privatevolatileintvalue=1;publicvoidfunc1(){if(value==1){//dosomething}}publicvoidfunc2(){if(value==2){//dosomething}}publicvoidfunc3(

java - synchronized Collection 的 toArray() 方法是同步的吗?

如果我有一个这样的同步集合Collectionc=Collections.synchronizedCollection(myCollection);synchronizedCollection的javadoc提到外部迭代必须像这样同步:synchronized(c){Iteratori=c.iterator();while(i.hasNext()){process(i.next());}}我可以假设c.toArray()是同步的,因此当方法执行时集合不会发生变化吗?或者我是否也需要同步它:synchronized(c){c.toArray();} 最佳答案

java - 任何人都可以解释如何在 java 中使用 Reentrant Lock over Synchronized 和一些最好的例子

当我在http://javarevisited.blogspot.in/2013/03/reentrantlock-example-in-java-synchronized-difference-vs-lock.html运行示例类时,我看到了与synchronized相同的行为。 最佳答案 这里有线程获取锁和释放锁的三种方式、方法。您可能想尝试使用synchronized关键字来实现这些。使用ReentrantLock的扩展功能和优势将变得显而易见。publicclassDoorLockUsingLock{privateintcou

java - 在 Spring Data JPA 中按类型查询

我有抽象类:@Entity@Inheritance(strategy=InheritanceType.JOINED)publicabstractclassA{...}和一些扩展类,例如:@EntitypublicclassBextendsA{...}我还有第三个实体:@EntitypublicclassC{@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER)privateAobjectA;...}问题是,我如何在C实体存储库中构造SpringDataJPA查找器以仅查询扩展A所需类型的对象? 最佳答

java - synchronized方法修改后所有java线程都会看到共享资源更新吗?

如果对一对数据结构的所有访问总是包含在锁的获取和释放中(特别是,对数据结构的任何修改使用静态同步方法)。例如:publicstaticsynchronizedItemdoIt(){//removesomethingfromdatastructure1//addtheremoveditemtodatastructure2//returnremoveditem}我知道同步方法一次只会强制一个线程执行更新,但是当一个线程退出该方法时,是否保证其他线程可以看到更新的数据结构,或者我是否仍然需要专门的并发该保证的数据结构?编辑:这是我正在尝试做的一个更好的例子:privatestaticfina

java - 带有 IN 子句的 Spring Data JPA 中的 NPE

我使用SpringDataJPA1.7.1和Hibernate4.3.7作为我的JPA提供程序。我有以下SpringDataJPA存储库:@RepositorypublicinterfaceCompanyRepositoryextendsJpaRepository{@EntityGraph(value="graph.company.search.results",type=EntityGraph.EntityGraphType.FETCH)@Query("SELECTcFROMCompanycWHEREc.idIN:companyIds")ListfindByCompanyIdsFor

java - Spring Data Rest 2.4 间歇性错误(ClassCastException)

继续使用SpringDataRest。迁移到2.4.0后,我获得了更多我想要的行为,但现在我遇到了一个奇怪的间歇性异常。关于。..当我重新加载或部署我的应用程序时,有2/3的时间,每个带有数据的SDR端点都会抛出500,并给出以下信息:GET/api/departments--------------------HTTPStatus500-Couldnotwritecontent:org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResourceContentSerial

java - 使用 Hibernate 和 Spring Data JPA 激活 SQL 语句日志记录

我有一个使用Hibernate作为提供程序的SpringDataJPA存储库。我想记录SQL语句,但我做不到。我尝试了各种解决方案:在我的HibernateJpaVendorAdapter中将showSql设置为true将log4j.logger.org.hibernate.SQL=DEBUG添加到我的log4j.properties文件(值得一提的是log4j.logger.org.hibernate=INFO确实添加了一些日志信息,但log4j.logger.org.hibernate.SQL=DEBUG没有)这是我的类和配置文件:数据库配置.java/***Databasecon

java - Spring Data JPA - 具有无限递归的双向关系

首先,这是我的实体。播放器:@Entity@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class,property="id")publicclassPlayer{//otherfields@ManyToOne@JoinColumn(name="pla_fk_n_teamId")privateTeamteam;//methods}团队:@Entity@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class,property="id")p