标签: annotations

Hibernate注解对象映射

我对 hibernate 很陌生,我正在尝试将我拥有的 JDBC 项目转换为 Hibernate。

我正在使用注释,我设法注释了基本的东西,但是,我现在被困在更重的对象上,我不知道如何注释它们。这是类:

@Entity
@Table(name = "person")
public class Person {

    public Person{

    }

    // THIS WILL BE SOON INJECTED BY SPRING
    private static transient PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
    private static transient EmailValidator validator = EmailValidator.getInstance();

    @Id
    @Column(name = "person_id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(name = "private_name", nullable = false, length = 20)
    private String privateName;

    @Column(name = "middle_name", length = 20)
    private String middleName;

    @Column(name = "family_name", nullable = false, length = 20) …
Run Code Online (Sandbox Code Playgroud)

java annotations dao hibernate

1
推荐指数
1
解决办法
9520
查看次数

java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass

当我尝试本教程时,我是 JPA 和休眠的新手 。我在我的persistence.xml中添加了以下提供者,

<provider>org.hibernate.ejb.HibernatePersistence</provider> 
Run Code Online (Sandbox Code Playgroud)

我收到这个错误..

log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;
    at org.hibernate.ejb.Ejb3Configuration.addAnnotatedClass(Ejb3Configuration.java:1421)
    at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1391)
    at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:1184)
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1048)
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:291)
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:373)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
    at de.vogella.jpa.simple.main.Main.main(Main.java:17)
Run Code Online (Sandbox Code Playgroud)

请帮助解决此错误。谢谢

annotations hibernate jpa persistence.xml hibernate-annotations

1
推荐指数
1
解决办法
3万
查看次数

Java中通过注解值获取枚举值

我正在尝试使用与枚举值关联的注释字符串值,以获得对关联枚举值的引用。

我最终陷入了中途......目前我有以下开发代码:

注释代码:

public @interface MyCustomAnnotation{
    String value();
}
Run Code Online (Sandbox Code Playgroud)

枚举代​​码:

public enum MyEnum{
    @MyCustomAnnotation("v1")
    VALUE1,
    @MyCustomAnnotation("v2")
    VALUE2,
    @MyCustomAnnotation("v3")
    VALUE3,
}
Run Code Online (Sandbox Code Playgroud)

使用枚举注释:

String matchString = "v1";
MyEnum myEnumToMatch;

// First obtain all available annotation values
for(Annotation annotation : (MyEnum.class).getAnnotations()){
    // Determine whether our String to match on is an annotation value against
    // any of the enum values
    if(((MyCustomAnnotation)annotation).value() == matchString){
        // A matching annotation value has been found
        // I need to obtain a reference to the corrext Enum value …
Run Code Online (Sandbox Code Playgroud)

java enums annotations

1
推荐指数
1
解决办法
2290
查看次数

Annotation 中的多个验证选项

我的问题是这个问题的一个分支

我有一个要验证的注释(比如电话注释)。我可以使用@phone 验证器来检查电话对象是否有效。我还希望能够将此验证器放在包含电话的联系信息对象上。有没有办法对一个注释使用多个验证器,以便我可以将 @phone 用于我的电话对象和我的联系信息对象?

喜欢
@Constraint(validatedBy = {PhoneIsValid.class, PhoneIsValid2.class})
工作吗?(想法是一个验证器处理电话对象,另一个处理联系信息对象。)

annotations hibernate-validator bean-validation

1
推荐指数
1
解决办法
1819
查看次数

同时使用@Nonnull和Preconditions.checkNotNull(...)

使用参数注释@Nonnull并随后使用对其进行检查是否有意义Preconditions.checkNotNull()

它们之间有什么区别?据我了解,@Nonnull除非您在IDE中进行了说明,否则using 将仅指定合同,而不会进行进一步检查。它是否正确?

java null annotations guava

1
推荐指数
1
解决办法
1138
查看次数

Mybatis结果声明重用

下面的代码是正常工作的mapper类,但是它具有结果集声明的复制内容(在我的情况下这是很大的)。
如何重用@Results声明?

@Mapper
public interface DailyMasterCurrentTradeDao {
    @Select("select * from dly_mstr_curr_trd")
    @Results({
        @Result(property = "accAdsStC", column = "ACC_ADS_ST_C"),
        ...
    })
    List<DailyMasterCurrentTrade> selectDailyMasterCurrentTrades();

    @Select("select * from dly_mstr_curr_trd where rownum < #{rownumThreshold}")
    @Results({
        @Result(property = "accAdsStC", column = "ACC_ADS_ST_C"),
        ...
    })
    List<DailyMasterCurrentTrade> selectFewDailyMasterCurrentTrades(long rownumThreshold);
}
Run Code Online (Sandbox Code Playgroud)

java annotations mybatis

1
推荐指数
1
解决办法
2163
查看次数

如何在Spring Boot中将不同的目标动态添加到JMSListener注释?

我正在研究一个从Azure服务总线读取消息的应用程序。该应用程序是使用Spring Boot,Spring jms和Qpid jms客户端创建的。我能够从Queue正确读取消息,而没有任何问题。PFB我用来阅读消息的代码。

@Service
public class QueueReceiver {
@JmsListener(destination = "testing")
public void onMessage(String message) {
    if (null != message) {
        System.out.println("Received message from Queue: " + message);
    }
}}
Run Code Online (Sandbox Code Playgroud)

问题是,对于不同的环境,我们有不同的目的地,例如testingfor devtesting-qafor qatesting-prodfor production,所有这些值都分别azure.queueName在不同的application-(ENV).properpties中提供。我想将这些目标动态传递给JmsListener注释中的目标。当我尝试使用

@Value("${azure.queueName}")
private String dest;
Run Code Online (Sandbox Code Playgroud)

并将dest传递给注释 @JmsListener(destination = dest)

我收到The value for annotation attribute JmsListener.destination must be a constant expression错误消息。仔细检查了此错误后,我发现我们无法将动态值传递给注释。请帮助我如何解决此问题或任何其他解决方案。

java annotations spring-annotations spring-jms spring-boot

1
推荐指数
1
解决办法
2971
查看次数

.Net核心数据注释 - 使用共享资源进行本地化

我想使用共享resx文件来指定所有可翻译的字符串(两者都是为了方便翻译,更重要的是避免使用与DRY原理冲突的数十个单独的resx文件).我使用IStringLocalizer来处理控制器和视图,但我无法弄清楚如何为模型的数据注释实现它.

它通过使用像Models.AccountViewModels.LoginViewModel.en.resx这样的单独文件来工作,但是我如何使用共享资源文件进行数据注释而不是特定注释呢?有人可以分享实施的例子吗?

提前致谢!

PS环境是.Net Core 1.1,因此验证和显示注释都应该在该版本中可用于本地化

.net annotations localization core

1
推荐指数
1
解决办法
1621
查看次数

javax.validation.ConstraintDefinitionException:HV000074

我试图在特定字段上使用javax/hibernate自定义验证,但我收到以下错误:

javax.validation.ConstraintDefinitionException: HV000074: com.hertz.digital.hertzrac.model.Code contains Constraint annotation, but does not contain a payload parameter.
    at org.hibernate.validator.internal.metadata.core.ConstraintHelper.assertPayloadParameterExists(ConstraintHelper.java:427) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.core.ConstraintHelper.isConstraintAnnotation(ConstraintHelper.java:407) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findConstraintAnnotations(AnnotationMetaDataProvider.java:582) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findConstraints(AnnotationMetaDataProvider.java:535) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findPropertyMetaData(AnnotationMetaDataProvider.java:234) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getFieldMetaData(AnnotationMetaDataProvider.java:227) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.retrieveBeanConfiguration(AnnotationMetaDataProvider.java:137) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getBeanConfiguration(AnnotationMetaDataProvider.java:125) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getBeanConfigurationForHierarchy(AnnotationMetaDataProvider.java:108) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.BeanMetaDataManager.createBeanMetaData(BeanMetaDataManager.java:203) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getOrCreateBeanMetaData(BeanMetaDataManager.java:231) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.metadata.BeanMetaDataManager.isConstrained(BeanMetaDataManager.java:174) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:194) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
    at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:118) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
    at org.springframework.boot.autoconfigure.web.WebMvcValidator.validate(WebMvcValidator.java:69) ~[spring-boot-autoconfigure-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.validation.DataBinder.validate(DataBinder.java:891) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
    at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.validateIfApplicable(ModelAttributeMethodProcessor.java:168) ~[spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
    at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:115) ~[spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
    at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121) ~[spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
    at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:158) ~[spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:128) ~[spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) ~[spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] …
Run Code Online (Sandbox Code Playgroud)

java validation annotations hibernate

1
推荐指数
1
解决办法
5611
查看次数

Spring注释可以访问方法参数吗?

考虑一个UrlValidator方法注释,该注释在调用方法之前测试给定的URL是否有效。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UrlValdator{
    String value();
}
Run Code Online (Sandbox Code Playgroud)

当路由是静态的并且提前知道时,这可以正常工作。例如:

@UrlValidator("http://some.known.url")
public void doSomething();
Run Code Online (Sandbox Code Playgroud)

但这不是很灵活。例如,如果路由在doSomething()方法签名中是隐式的,该怎么办?我可以以某种方式通过Spring Expression Language或其他方式访问它吗?例如,这不起作用,但这是我要拍摄的

@UrlValidator("#p1")
public void doSomething(String url)
Run Code Online (Sandbox Code Playgroud)

要么

@UrlValidator("#p1.url")
public void doSomething(Request request)
Run Code Online (Sandbox Code Playgroud)

是否可以通过这种方式使注释动态化?

有关

这是我找到的最接近的东西,但是线程很旧,可以接受的答案非常麻烦/难以遵循。是否有一个最小的工作示例/更新的方式来做到这一点?

java spring annotations

1
推荐指数
1
解决办法
2268
查看次数