我正在开发销售点应用程序,其中一项功能是在热量/收据打印机中打印收据.目前我有一台Datecs DPP-255打印机.
我不知道从哪里开始我的任务.
我尝试通过互联网搜索,发现JavaPOS/UnifiedPOS存在,但我找不到足够的文档来启动我.请说清楚.
使用SpringBoot 1.4.1.RELEASE.一个简单的任务是创建,每5秒运行一次.它使用Spring Data JPA从数据库中获取数据,通过API发送数据,并且成功后,使用Spring Data JPA更新数据库中的发送状态.
以下是调度程序代码段
@Component
public class MemberJob {
@Value("${base.url}")
private String baseApiUrl;
@Autowired
private RestTemplate restTemplate;
@Autowired
@Qualifier("memberServiceBean")
private EntityService memberServiceBean;
@Scheduled(fixedDelay = 5000l)
public void runJob() throws Exception {
Collection<Member> notSynched = memberRepository.findAll();
notSynched.stream().forEach(m -> {
//Send to server: on success
m.setSyncStatus(true);
memberServiceBean.update(m);
});
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于成员未成功更新.由于某些原因,Spring Data JPA无法使用@Scheduled
方法.如何使数据jpa在自调用 @Scheduled
方法中更新此对象?
是的在服务层的更新方法装饰有@Transactional
像这样
@Transactional(propagation = Propagation.REQUIRED)
public Member update(Member m) {
return (Member) getRepository().save(m);
}
Run Code Online (Sandbox Code Playgroud)
根据对评论部分的建议,更新方法被try/catch
不幸的例外所捕获!像这样
try{
m …
Run Code Online (Sandbox Code Playgroud) 我试图从中选择选项<select>
,将其传递给show()
控制器中的方法,使用它从数据库中检索数据,然后将其作为json返回到成功方法中$.ajax
.所有这一切都在发生jquery.ajax
.
如何从$.ajax
请求传递数据来获取/接收数据?
这是我正在使用的代码:
Route::post('rate/units',array('as'=>'unitRoute','uses'=>'RateController@show'));
Run Code Online (Sandbox Code Playgroud)
public function show()
{
$row[] = $_POST['deg'];
return json_encode($row);
}
Run Code Online (Sandbox Code Playgroud)
<select class="form-control choosedegree" name="sem" id="semester">
<option value="" selected="selected" disabled>Select Semester</option>
<option value="1">Year 1, Semester 1</option>
<option value="2">Year 1, Semester 2</option>
<option value="3">Year 2, Semester 1</option>
<option value="4">Year 2, Semester 2</option>
<option value="5">Year 3, Semester 1</option>
<option value="6">Year 3, Semester 2</option>
<option value="7">Year 4, Semester 1</option>
<option value="8">Year 4, Semester 2</option>
</select>
<script> …
Run Code Online (Sandbox Code Playgroud) 试图在Select子句中使用Project来编写子查询
queryFactory.query()
.select(
Projections.constructor(
MemberPaymentDTO.class,
JPAExpressions
.select(coopMember)
.from(coopMember)
.where(memberPayment.memberId.eq(coopMember))
.fetchOne(),
JPAExpressions
.select(paymentTransaction.amount)
.from(paymentTransaction)
.where(paymentTransaction.transactionId.eq(memberPayment.paymentTransaction.transactionId))
.fetchOne().floatValue(),
JPAExpressions
.select(collectionTransaction.price.multiply(collectionTransaction.quantity).sum())
.from(collectionTransaction)
.where(collectionTransaction.member.memberId.eq(memberPayment.memberId.memberId))
.where(collectionTransaction.paymentPeriod.paymentPeriodId.eq(paymentPeriodId))
.fetchOne().floatValue()
)
.from(memberPayment);
Run Code Online (Sandbox Code Playgroud)
DTO如下
public class MemberPaymentDTO {
private CoopMember coopMember;
private float payableAmount;
private float collectionsAmount;
public MemberPaymentDTO(CoopMember coopMember, float payableAmount, float collectionsAmount) {
this.coopMember = coopMember;
this.payableAmount = payableAmount;
this.collectionsAmount = collectionsAmount;
}
}
Run Code Online (Sandbox Code Playgroud)
上面代码的问题是Intellij Compiler抱怨 Cannot resolve method 'constructor(java.lang.Class<re.iprocu.model.MemberPaymentDTO>, re.iprocu.model.CoopMember, float, float)
是否可以将子查询添加到select子句并在DTO中设置?怎么样?
我正在使用Spring Boot 1.3.3和JavaFX.应用程序成功启动Splash屏幕(此时applicationContext不为null)
@SpringBootApplication
public class PirconApplication extends Application{
@Bean(name = "primaryStage")
public Stage getPrimaryStage() {
return new Stage(StageStyle.DECORATED);
}
private ConfigurableApplicationContext applicationContext = null;
private static String[] args = null;
@Override
public void stop() throws Exception {
super.stop();
Platform.exit();
applicationContext.close();
}
@Override
public void start(Stage primaryStage) throws Exception {
Task<Object> worker = worker();
worker.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(WorkerStateEvent event) {
try {
AppSplashController loader = applicationContext.getBean(AppSplashController.class);
Stage stage = applicationContext.getBean(Stage.class);
stage.setScene(loader.init());
stage.initStyle(StageStyle.UNDECORATED);
stage.show();
} catch (IOException e) …
Run Code Online (Sandbox Code Playgroud) 如果该周恰好在连续 2 个月内,我需要知道该周所属的确切月份。例如,2016年的第52周是2016年12月和2017年1月。另外2017年的第5周是从2017年1月30日至2月5日开始。
那么给定一年中的周数,我能得到它所属的月份吗?我需要知道是否有任何 JS 库可以轻松实现这一点。
我知道我可以从特定日期值获取周数,但还没有找到一种方法来获取该日期所属的日期范围,以便我可以从中导出月份。如果momentJS 或任何其他库可以做到这一点,如何我可以用它们来实现这个目标吗?
提前致谢
Hibernate、Hibernate Envers 和 QueryDSL 在 Spring boot 中配置并正常工作1.4.1.RELEASE
。
问题是当使用UpdateClause<JPAUpdateClause> updateQueryBuilder = queryFactory.update(collectionTransaction);
构建更新查询并执行该更新查询时,Hibernate Envers 不会拾取并审核这些更改。
以下是实现 QueryDSL 的 Spring Data JPA 存储库
public class CollectionTransactionRepositoryImpl extends QueryDslRepositorySupport implements CollectionTransactionRepositoryCustom {
@Autowired
private JPAQueryFactory queryFactory;
public CollectionTransactionRepositoryImpl() {
super(CollectionTransaction.class);
}
@Override
public Collection<CollectionTransaction> updateCollectionTransaction(UpdateCollectionTransaction updateCollectionTransaction) {
QCollectionTransaction collectionTransaction = QCollectionTransaction.collectionTransaction;
UpdateClause<JPAUpdateClause> updateQueryBuilder = queryFactory.update(collectionTransaction);
.....//Code omitted for brevity
long updated = updateQueryBuilder.execute();
//.....
return ...
}
}
Run Code Online (Sandbox Code Playgroud)
Hibernate Envers 有可能在这种情况下做出改变吗?
使用Query DSL和 hibernate (Spring Data JPA) 来构建这样的查询
if( bankId != null ){
query.where(
coopMember.personId.bankAccountId.isNotNull().and(
coopMember.personId.bankAccountId.bankBranch.bankId.eq(bankId))
);
}
return query.fetch();
Run Code Online (Sandbox Code Playgroud)
这里的逻辑很简单:如果有一个与某人关联的银行帐户,则按银行 ID 过滤结果。
所述BankAccount
实体具有BankBranch
保持bankId
整数值。一个CoopMember
实体可能有也可能没有BankAccount
问题是当执行上述 QueryDSL 查询时NullPointerException
,即使存在非空检查,也会抛出 a。
将逻辑更改为遵循相同的错误会引发。我想知道为什么bankBranch
不能进行“空检查”:
if( bankId != null ){
query.where(
coopMember.personId.bankAccountId.isNotNull().and(
coopMember.personId.bankAccountId.bankBranch.isNotNull())
);
}
Run Code Online (Sandbox Code Playgroud)
抛出以下堆栈跟踪:
java.lang.NullPointerException:在 re.iprocu.repository.impl.MemberRepositoryImpl.findMembersByPaymentModes(MemberRepositoryImpl.java:306) ~[classes/:na] 在 re.iprocu.repository.impl.MemberRepositoryImpl$$FastClass$6aCG5ae 为 null invoke() ~[classes/:na] 在 org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.3.13.RELEASE.jar:4.3.13.RELEASE] 在org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738) ~[spring-aop-4.3.13.RELEASE.jar:4.3.13.RELEASE] 在 org.springframework.aop.framework.ReflectiveMethodInvocation .proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.13.RELEASE.jar:4.3.13.RELEASE] 在 org.springframework.dao.support.PersistenceExceptionTranslationInterceptor。invoke(PersistenceExceptionTranslationInterceptor.java:136) ~[spring-tx-4.3.13.RELEASE.jar:4.3.13.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring -aop-4.3.13.RELEASE.jar:4.3.13.RELEASE] …
部署到谷歌应用引擎的Spring启动应用程序和对端点的请求正确地响应了预期的硬编码文本.除了8080
暴露的默认端口之外,TCP:8595
还会暴露另一个端口,通过跟踪设备将数据发布到该端口.
问题是当我测试得到tcp连接时telnet projectid.appspot.com 8595
我得到了这个响应Connecting To projectid.appspot.com...Could not open connection to the host, on port 8595: Connect failed
,想到本地连接没有失败.
应用程序引擎中托管的应用程序如何公开端口?
免责声明:我是App Engine和GCP的新手
java tcp spring-boot google-cloud-platform app-engine-flexible
我是多线程的新手,我想为企业应用程序实现多线程。问题是我遇到了两(2)个多线程框架
在决定之前我应该知道什么利弊,并开始学习和使用。