工作
-
- comment27 截图
- 测试截图
总结
- #总结 JPQL 中传入一个 List 对象取数据。List 为空或者 null 时的情况,需要考虑。不能出现,List 为空时,取出所有数据的情况。
- JPQL 中判断数据有无时,同样的 where 条件,限定取一条数据,比使用 count 函数,更高效。

| 方法 | 优点 | 缺点 |
|---|---|---|
| COUNT | 简单直观,适用于统计记录数 | 可能涉及聚合操作,性能较低 |
| LIMIT 1 | 早期停止查询,性能较高 | 需要额外处理结果集 |
工作
#总结 关于微修正,不止可以修改固定文字和 layout。出力部分,也有一些是可以修改的。
- 15194 EDUCOM 標準版 お知らせ(共通) 修正
- 15783 【新規】 久喜市 運動器検診結果のお知らせ(異常あり)

工作
-
#总结 按照式样书要求编程,不要按照 seed 的数据进行编程。
-
连携中,关于以下式样,测试条件有哪些
- (Array)評価項目存在する
- 该项目的 key 不存在
- 该项目 key 的 value 是 null
- (Array)評価項目の配列が 0 件(exams)
- 该项目 key 的 value 是 []
- (String)「3-1.評価項目名」 exam_subject_name 存在する
- 该项目的 key 不存在
- 该项目 key 的 value 是 null
- 问题?
- 该项目 key 的 value 是空字符串:""
目前测试不了,这种情况可以转成 java 对象,只不过 java 对象里面所有属性都为 null。 - 该项目 key 的 value 是空白:" "
目前测试不了,这种情况可以转成 java 对象,只不过 java 对象里面所有属性都为 null。 - 该项目 key 的 value 是其他指定外的值,例如以下情形:
- 该项目 key 的 value 是空字符串:""
- 解决方法
- 自定义适配器来解决?
- TemporalNonNillableAccessorJsonbAdapter
- TemporalNonNillableAccessorXmlAdapter
- 自定义适配器来解决?
- (Array)評価項目存在する
其他
- java14 的 record 类型
工作
-
- 在老画面做一下 center 予定 category,并做予定,看下相同用户,在不同学校,役职不同的情形下,权限如何
#总结 测试的时候,账号不仅要使用权限最大的,例如:educom。还要使用普通用户。
工作
工作
-
persistence.xml 中添加 entity 的作用
- 单体测试用
- 生成 sql 文用
-
可以接手的 V3 帐票
- 15890 堺市 児童生徒健康診断票(一般) 修正
工作
工作
工作
-
如下枚举型的写法?
public enum MenuAttribute {
NONE(u -> false), //
ADMIN(u -> Optional.ofNullablebooleanValue).orElse(false), //
ALL(u -> true), //
CENTER(u -> SchoolType.CENTER_TYPES.contains(u.getCorrespondingEducationInstitute().getSchoolType().getSchoolTypeId())), //
SCHOOL(u -> !SchoolType.CENTER_TYPES.contains(u.getCorrespondingEducationInstitute().getSchoolType().getSchoolTypeId())), //
;
private MenuAttribute(final Predicate<LoginAccount> predicate) {
this.predicate = predicate;
}
final boolean isApplicableTo(final LoginAccount user) {
return predicate.test(user);
}
final private Predicate<LoginAccount> predicate;
}
工作
工作
-
????有问题 连携时,返回的 json 中有一个数组元素设置为 null,java 中的 list 对象,想要在反序列化时,变成 null。json 对象需要加上注解:@XmlElementWrapper(nillable = true)
工作
其他
- 安装 ubuntu 系统
- #总结 微修正,没有 c4l 文件,需要 ask。
- 这是什么写法?
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumns({ @JoinColumn(name = "teacher_entityid", referencedColumnName = "entityid"), @JoinColumn(name = "educom_id", referencedColumnName = "educom_id") })
private Teacher teacher;
- 新加了一个字段,提示如下?
- 重启下 DB,就好了。

- 重启下 DB,就好了。
工作
-
09:00 #tips 2013 学習系システムからデータ取得 素点取得 comment:37
- 15593_comment142
- ①対象の評価項目(担当別)に紐づく大問(examination_question)を検索,这边是参照 評価項目取込>更新定義 _ 評価項目(担当別)sheet > 56 行的式样做的
-
- SakaiResultsOfEye
-
- SakaiResultsOfEye2
-
- SakaiResultsOfEyesight
-
- SakaiResultsOfEarNoseThroat
-
- SakaiResultsOfUrinology
-
- SakaiResultsOfUrinology3
-
- SakaiResultsOfDentistry
-
- SakaiResultsOfUrinology2
-
制造管理票
#15897 堺市 お知らせ(眼科) 修正 530 行
#15895 堺市 お知らせ(眼科・通院中) 修正 534 行
#15900 堺市 耳鼻咽頭健康修正しました。診断結果のお知修正しました。らせ 修正 538 行
#15882 堺市 お知らせ(視力) 修正 542 行
#15864 堺市 お知らせ(尿糖) 修正 562 行
#15867 堺市 お知らせ(歯科) 修正 566 行
#15892 堺市 お知らせ(尿・追跡者用) 修正 570 行
#15893 堺市 お知らせ(尿・蛋白潜血) 修正 574 行 -
#总结 修改一个共通,其他账票全都修正的,怎么发邮件?

工作
-
- 修正一个文字,为什么要导入 seed?
- 实际不需要导入

- 实际不需要导入
- 使用单体,打出来的 pdf 是空白,这是为什么?没有数据吗?
- 是的,没有数据导致的。
- 修正一个文字,为什么要导入 seed?
其他
- 为什么 JPA 的项目,定义了一个 entity,进行业务开发时,还要定义一个 entity 对应的 entityData
工作
-
- 11/7 宮崎祥子 No4,6,11,12 を削除
工作
-
- 打开 c4s
- 单体测试类
- 禁則処理
工作
-
素点取得工时统计
- 15593 学習系システムからデータ取得 素点取得(3.16.03)
- 开发 2024/9/30 ~ 2024/11/28 210 小时
- 测试 2024/11/19 ~ 2024/11/20 疏通测试
- 15618 学習系システムからデータ取得 素点取得(3.16.03) PG検証用
- 开发 2024/11/21 ~ 2024/11/28
- 测试 2024/11/21 ~ 2024/11/28 53 小时
テストは完了しました。テストファイルを添付致します。
工数記録
設計書作成工数:0(人日)
実施工数:6.5(人日)
- 15593 学習系システムからデータ取得 素点取得(3.16.03)
工作
其他
-
#总结 关于 flush、事务、commit 的区别?以及各自的特性?
- flush
- 1 千条数据的时候,一个一个 flush,和 一次 flush,差别不大。
- 几千条数据的时候,一次 flush,比一个一个 flush 快。
- 上万条数据的时候,一次 flush 也比较慢,最好分成,一千条 flush 一次。
- 上万条数据一起 flush 的时候,上万条数据需要在内存里面一起顺一遍,会比较慢
- flush
-
#总结 关于 DB 的错误,flush 的时候才会被捕获。例如 15593 学習系システムからデータ取得 素点取得(3.16.03) 中如下代码:
- 式样要求捕获 DB error,但是如果没有questionScoreLifecycle.flush(); 就 catch 不到异常。
// 更新 or 登録
try {
createOrUpdateQuestionScore(studentData, cache, examCache);
} catch (final PersistenceException e) {
throw newBusinessException(resultBuilder);
}
private void createOrUpdateQuestionScore(final JsonAssessResultStudentData studentData, final ProcessCache cache, final ExamCache examCache) {
final ExamQuestionScoreLifecycle questionScoreLifecycle = getLifecycle(ExamQuestionScoreLifecycle.class);
final GradeMembershipLifecycle gradeMembershipLifecycle = getLifecycle(GradeMembershipLifecycle.class);
for (final JsonAssessResultViewPointData viewPointData : distinctList) {
if (examQuestion != null) {
final ExamQuestionScore questionScore = questionScoreLifecycle.findByGradeMembershipAndExamQuestion(gradeMembership, examQuestion);
if (questionScore != null) {
questionScoreLifecycle.update(questionScore, (entity, context) -> {
entity.setScore(Integer.parseInt(viewPointData.getViewpointScore()));
});
} else {
questionScoreLifecycle.create((entity, context) -> {
entity.setExamQuestion(examQuestion);
entity.setGradeMembership(gradeMembership);
entity.setScore(Integer.parseInt(viewPointData.getViewpointScore()));
});
}
}
}
questionScoreLifecycle.flush();
}
工作
- json 文件,tag 排序
@XmlType(propOrder = { "schoolId", "localStudentId", "observationDay", "observationContents", "observationUser", "uniqueKey", "transactionNo" })
@JsonbPropertyOrder(value = { "schoolId", "localStudentId", "observationDay", "observationContents", "observationUser", "uniqueKey", "transactionNo" })
@ToStringAppendedProperty(ToStringAppendType.DUMP)
public class JsonObservationRecordCoordinationData implements SmartSchoolData {
- @XmlRootElement 可加可不加吗
工作
工作
工作
工作
其他
- ISO8601 の年月日形式(YYYY-MM-DD)
- v3,BoardInfoParameter 的 getTargetDate 方法,为什么要加注解:@XmlJavaTypeAdapter(LocalDateNonNillableXmlAdapter.class)
- LocalDate 与 Date、TemporalAccessor 与 Date
工作
工作
工作
工作
-
#常用注解 @ReplicatorMapping(mappingStrategy = ReplicatorMappingStrategy.REPLICATE_RECURSIVELY) 的作用?@ReplicatorMapping(skip = true) 的作用?
- entity 转 businessData 用到的?
-
#总结 entity 分事务?entity 不能跨事务传递?
- 跨事务的时候,在新事务中直接查看 entity 是可以的,使用这个 entity 调用 jpql 查询也是可以的。但是新规或者更新时,不能使用这个 entity,entity 不能与新事务中的 entity 产生关联。
-
#todo 静态内部类与非静态内部类的区别?
- 线程安全主要是由于类中的静态成员(如静态字段或静态方法)被多个线程共有。而不是因为类是静态或者非静态。因为静态类或者非静态类,都是需要 new 一个新的对象来使用的。
-
疑问?
- 为什么如下,得到的 grade,不能直接在新规 entity 时,entity.setGrade 使用。而必须重新 findById 查找一遍 grade,才能使用。不然,会生成很多的 sql 文,直至内存溢出。

- 为什么如下,得到的 grade,不能直接在新规 entity 时,entity.setGrade 使用。而必须重新 findById 查找一遍 grade,才能使用。不然,会生成很多的 sql 文,直至内存溢出。
-
newSimpleDateFormat 会存在线程安全问题吗?
-
2 个 lifecycle create,最后只要 flush 一个就可以了。
工作
-
在事务 A 中,开了事务 B,事务 B 发生异常后,事务 A 中的 DB 操作,会回滚吗?
事务 B 回滚,事务 A 不回滚。
工作
工作
工作
-
#总结 entity 的定义,需要双向关联的时候,get,set 方法中,才使用 onetomanysupport。
工作
工作
工作
-
v3 中有 2 个关于 date 的工具类,DateUtility 和 DateUtils。使用 DateUtility。DateUtils 有时区的 bug。
-
JPQL 如下写法学习
@Override
public List<HomeroomClassMembership> findByHomeroomClassAndDate(final IntraSchoolGroup intraSchoolGroup, final Date startDate, final Date endDate, final boolean orderBySex) {
final StringBuilder buf = new StringBuilder();
buf.append("select c from Student s, IN(s.schoolMembershipHistory) h, IN(h.gradeMemberships) g, IN(g.homeroomClassMemberships) c ");
buf.append(" where c.homeroomClass = :theClass ");
buf.append(" AND NOT ( c.joinedDate > :theEndDate OR ( c.leftDate IS NOT NULL AND c.leftDate < :theStartDate ) )");
if (orderBySex == true) {
buf.append(" order by s.userSex DESC , c.studentNumber ASC");
} else {
buf.append(" order by c.studentNumber");
}
final Query query = getEntityManager().createQuery(buf.toString());
query.setParameter("theClass", intraSchoolGroup);
query.setParameter("theStartDate", startDate);
query.setParameter("theEndDate", endDate);
return getQueryResultList(query);
}
工作
工作
工作
工作
其他
- excel 怎么检索图表中的文字?
- #总结 entity 定义中,@JoinColumn 的 nullable 和 @ManyToOne 的 optional,有什么联系和区别
nullable是物理层面上的约束,它决定了数据库中的列是否可以存储NULL值。optional是逻辑层面上的约束,它决定了在应用中是否允许关系对象为null。nullable和optional都是用来指定某个字段是否可以为空。在设计时,通常希望nullable和optional保持一致,即如果数据库列不允许为NULL(nullable = false),那么在应用层也应该不允许关系对象为null(optional = false)。
工作
- 使用 git svn rebase 更新代码,提示 Checksum mismatch
工作
工作
工作
工作
工作
工作
- 分支 4.6.03 和 3.16.03 切换
其他
工作
工作
工作
工作
-
写 2 个 sql 文
- 1 个 sql 文:查出単価・期間設定中配膳場所为 null 的设定数据
- 1 个 sql 文:查出满足上面 sql 文的设定,并且设定了欠食的数据
工作
-
13:09:12
心有欢喜,万事可期
工作
工作
其他
- 一个 entity 实现了 Comparable 接口,并重写了 compareTo 方法。使用这个 entity 时,如何才能进行排序
- 将 entity 放入 list 中,然后调用 sort 方法(Collections.sort(entityList))进行排序
- 将 entity 放入 sortedset 中,会自动根据 conpareTo 的实现,进行排序。
- git,已经提交远程服务器的提交,能撤销吗。还是只能回复至之前的代码,然后再次提交
- git revert 命令用于撤销特定的提交,但它会创建一个新的提交来记录这次撤销操作。这种方法不会改变提交历史,因此适合在多人协作的环境中使用,因为它不会影响其他开发者的提交。这种方法的优点是安全,因为它不会改变提交历史,适合在多人协作时使用。
- 使用 git log 查看提交历史,找到要撤销的提交的哈希值。
- 运行 git revert <commit_id> 来撤销该提交。
- 提交新的撤销提交。
- git reset 命令用于将当前分支的 HEAD 指针移动到指定的提交,并可以选择性地重置工作目录和暂存区。这种方法会改变提交历史,因此需要谨慎使用,尤其是在已经推送到远程仓库的情况下。这种方法的优点是可以完全回退到某个历史版本,清除之后的所有改动,但需要注意它会改变提交历史,可能会影响其他开发者的提交。
- 使用 git log 查看提交历史,找到要回退到的提交的哈希值。
- 运行 git reset --hard <commit_id> 来回退到该提交。
- 如果需要,可以使用 git push --force 强制推送本地更改到远程仓库。
- 如果你已经将提交推送到远程仓库,并且希望撤销这些提交,推荐使用
git revert方法,因为它不会改变提交历史,适合在多人协作的环境中使用。如果你确定不需要保留这些提交的历史记录,可以使用git reset方法,但要注意它会改变提交历史,并可能影响其他开发者的工作。
- git revert 命令用于撤销特定的提交,但它会创建一个新的提交来记录这次撤销操作。这种方法不会改变提交历史,因此适合在多人协作的环境中使用,因为它不会影响其他开发者的提交。这种方法的优点是安全,因为它不会改变提交历史,适合在多人协作时使用。
- SupportInformation.c4 乱码,怎么解决?
工作
工作
工作
工作
工作
-
- 只有 menu 权限的机能,如果没有继承 menuservice,看看使用 burp suite 会不会有什么问题。
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
工作
-
#总结 按钮非活性(通过 f12 控制台,可以修改 html 和 css 代码,但不能修改 js 代码)
- 满足条件时,按钮灰化。
- 满足同样的条件时,按钮 click 事件,直接 return,不能执行。
- 或者满足同样的条件时,按钮不要绑定 click 事件。
工作
工作
工作
其他
git 撤销提交
-
revert commit
- 功能:通过创建一个新的提交来逆向之前提交的更改,不会删除原始提交记录。
- 使用场景:安全地撤销公共提交,保留历史完整性。
- 执行如下操作后:当前代码没有 test 提交的部分。

-
drop commit
- 功能:删除指定的提交记录,包括代码更改和提交信息。
- 使用场景:在本地分支中删除不需要的提交,但会丢失该提交的历史。
- 对上述的,Revert "test",执行 drop commit 操作后:提交记录里面没有了,当前代码,有 test 提交的部分

-
undo commit
- 功能:撤销工作目录或暂存区的更改,不涉及历史提交记录。
- 使用场景:快速撤销未推送的本地更改,不影响远程仓库。
- 对上述的,test,执行 undo commit 操作后:提交记录里面没有了,当前代码,有 test 提交的部分,并且是已修改的状态

工作
其他
- js 函数调用方式其一
yearPopupView['popup'](param);
'popup': function (param) {
this.$el.css('display', 'flex');
$('#ribbonArea').hide();
backgroundController.toggle(true);
},
工作
其他
- PermissionCheckInterceptor 拦截器的步骤
- 前端通过 ajax,访问 rest 接口
- rest 接口,尝试去调用对应的方法
- 尝试调用@Remote 标注的 service 接口时,被拦截器拦截了


