TL; DR
我希望以一种从AbstractParent映射到AbstractParentDTO的方式使用modelMapper,稍后在ModelMapper-Config中调用每个Sub-class的特定映射器,然后跳过其余的(abstrac-class)映射.
怎么可能?这是正确的方法吗?有设计缺陷吗?
是)我有的:
父实体:
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "type")
public abstract class Parent {
//some more fields
}
Run Code Online (Sandbox Code Playgroud)
一个子实体:
//Basic Lombok Annotations
@DiscriminatorValue("child_a")
public class ChildA extends Parent {
//some more fields
}
Run Code Online (Sandbox Code Playgroud)
另一个子实体:
@DiscriminatorValue("child_b")
public class ChildB extends Parent {
//some more fields
}
Run Code Online (Sandbox Code Playgroud)
然后我有父DTO类:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME)
@JsonSubTypes({
@JsonSubTypes.Type(value = ChildA.class, name = "child_a"),
@JsonSubTypes.Type(value = ChildB.class, name = "child_b"),
public abstract class ParentDTO {
//some more fields
}
Run Code Online (Sandbox Code Playgroud)
一个孩子DTO:
public class ClassADTO extends ParentDTO …Run Code Online (Sandbox Code Playgroud) 我如何RoomDatabase为我的应用程序进行 VACUUM?我围绕 Room 构建整个应用程序,在某个时刻,一张大表会定期删除,然后再次填充。
我尝试使用查询创建一个额外的 DAO 接口:
@Dao
public interface GenericDao {
@Query("VACUUM")
void vacuum();
}
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
Error:(13, 10) error: UNKNOWN query type is not supported yet. You can use:SELECT, UPDATE, DELETE
Run Code Online (Sandbox Code Playgroud)
有解决方法吗?
基本上我需要的是,一旦我的表完全清空,自动增量就会再次从 1 开始。
我对数据库设计相当陌生,所以请理解这是否违反最佳实践。是的:我用尽了谷歌和我所知道的所有其他平台。
提前谢谢了!
我正在使用Fluid将Contentelments送入扩展:
<f:for each="{field.children}" as="myObj" iteration="iterator">
{myObj.render -> f:format.raw()}
</f:for>
Run Code Online (Sandbox Code Playgroud)
这工作正常.
元素看起来像这样:
<div class="childElement">
<h1>I'm a Caption!</h1>
<p>I'm some text.....</p>
</div>
Run Code Online (Sandbox Code Playgroud)
然后以某种方式显示元素.
现在我希望第一个Element有一个名为" first "的额外类.然后第一个元素看起来像这样:
<div class="childElement first">
<h1>I'm a Caption!</h1>
<p>I'm some text.....</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试使用迭代器解决这个问题,并简单地检查迭代器是否"isfirst".像这样的东西:
<f:for each="{field.children}" as="myObj" iteration="iteration">
<f:if condition="iteration.isFirst">
<f:then>
...
Run Code Online (Sandbox Code Playgroud)
但是我仍然需要插入课程,无论如何感觉必须有更好的方法来解决它.
有人可能会指出我正确的方向吗?
编辑(解决方案):
在我做"<div class="childElement">"了扩展而不是在Child中进行了包装后,接受的答案对我有用.我的解决方案现在看起来像这样
<f:for each="{field.children}" as="myObj" iteration="iterator">
<div class="childElement {f:if(condition:iterator.isFirst, then: ' first')}">
{childDce.render -> f:format.raw()}
</div>
</f:for>
Run Code Online (Sandbox Code Playgroud) android ×1
android-room ×1
fluid ×1
java ×1
modelmapper ×1
performance ×1
spring ×1
spring-boot ×1
typo3 ×1