gpt4 book ai didi

java - 关系 n :3 Hibernate

转载 作者:行者123 更新时间:2023-12-01 15:50:56 25 4
gpt4 key购买 nike


我想知道如何在 Hibernate 上建模 n:3 关系。我见过很多使用注释@ManyToMany、@OneToMany..等的例子,但没有一个是n:x,x是自然数。
你能给我一个简单的例子吗?提前致谢

最佳答案

您可以使用 validator 。我认为您的要求不能被视为数据库设计问题,而是验证问题。使用 validator 代替。您可以编写自定义 bean validator (JSR-303),它验证列表中元素的计数:

public class MyListSizeValidator implements
ConstraintValidator<MyListConstraintAnnotation, List<?> /* list of any type */ > {

public void initialize(MyListConstraintAnnotation myannotation) {
//To change body of implemented methods use File | Settings | File Templates.
}

public boolean isValid(List<?> mylist, ConstraintValidatorContext constraintValidatorContext) {
return mylist.size() < 4;
}
}

@Documented
@Constraint(validatedBy = MyListSizeValidator.class)
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
public @interface MyListConstraintAnnotation {
String message() default "List is full!";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}

用法如下:

class MyCronBean {
@NotNull
@MyListConstraintAnnotation
private List<MyObject> list;
/** setters and getters */
}

更新:您可以在 Maven 中使用 JSR-303 实现“hibernate validator”:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.0.2.GA</version>
</dependency>

关于java - 关系 n :3 Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6055404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com