Tag: annotations

JPA中的复合键

我想创建一个具有自动生成主键的实体,但也是一个由两个其他字段组成的唯一复合键。 我如何在JPA中执行此操作? 我想这样做是因为主键应该在另一个表中用作外键并使其复合并不好。 在下面的代码片段中,我需要命令和模型是唯一的。 pk当然是主键。 @Entity @Table(name = “dm_action_plan”) public class ActionPlan { @Id private int pk; @Column(name = “command”, nullable = false) private String command; @Column(name = “model”, nullable = false) String model; }

@Autowired注释在Java中的好处

也许,因为我的英语错误,我无法理解使用@Autowired注释的好处。 根据教程,我们可以通过@Autowired将第一个(I。)案例简化为第二个案例(II。)。 我的问题是,@ Autowired是什么意思? 因为它不再告诉,因为不使用@Autowired,编译器可以根据声明得出“EmpDao emDao”和“EmpManager”密切相关。 从这里引用的代码 一世。 public class EmpManager { private EmpDao empDao; public EmpDao getEmpDao() { return empDao; } public void setEmpDao(EmpDao empDao) { this.empDao = empDao; } … } II。 import org.springframework.beans.factory.annotation.Autowired; public class EmpManager { @Autowired private EmpDao empDao; }

无法让@Component在Spring中inheritance?

在我的项目中,有一个所有客户端类都扩展的公共基类。 这有一个@Autowired字段,需要由Hibernate注入。 这些都在另一个具有@Autowired基类集合的类中组合在一起。 为了减少客户端代码的样板,我试图让@Componentinheritance。 由于@Component默认情况下没有这样做(显然它曾经用过 ),我创建了这个变通办法注释 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Component @Inherited public @interface InheritedComponent { } …并用它注释基类。 它不漂亮,但我希望它会起作用。 不幸的是它没有,这真让我感到困惑,因为@Inherited应该让它发挥作用 还有其他方法可以inheritance@Component吗? 或者我只是要说任何扩展基类的类都需要这个样板?

如何在Jersey ContainerResponseFilter中获取资源注释

Jersey提供两个类来与资源上的注释进行交互: ResourceFilterFactory ,一个类可以inheritance它,以便在应用程序启动时触发一次 ContainerRequestFilter , ContainerResponseFilter ,几个类可以inheritance它们以在每个请求/响应上触发它们 ResourceFilterFactory定义了一个create方法(实现),它采用AbstractMethod来提供对方法和类注释的访问。 ContainerRequestFilter和ContainerResponseFilter定义了一个filter方法(实现),它接受请求/响应,但那些只能访问被调用的方法注释,而不是第一类。 我正在尝试实现一个CacheControl注释,它以下列方式定义HTTP缓存头。 @Path(“/path”) @CacheControl(maxAge = 172800) public class Resource { @GET @Path(“/{id}”) @CacheControl(mustRevalidate = true) public Response get(@PathParam(“id”) Long id) { … } } 我的问题是我不想为我的应用程序中定义的每个REST方法创建一个新的CacheControlFilter 。 public class FilterFactory implements ResourceFilterFactory { @Override public List create(AbstractMethod method) { List filters = newArrayList(); if (isAnnotationPresent(method, CacheControl.class)) filters.add(new CacheControlFilter(method)); […]

向前兼容的Java 6注释处理器和SupportedSourceVersion

我正在为一个项目尝试Java 7并从这种注释处理器(Bindgen和Hibernate JPA modelgen)获得警告: warning: Supported source version ‘RELEASE_6’ from annotation processor ‘org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor’ less than -source ‘1.7’ 这是由注释处理器类上的@SupportedSourceVersion(SourceVersion.RELEASE_6)注释引起的。 由于它们是使用Java 6编译的,因此它们可用的SourceVersion最大值是RELEASE_6 。 SourceVersion的Java 7版本引入了RELEASE_7 。 我的问题:注释处理器如何处理前向兼容性? 是否必须有单独的jdk6和jdk7二进制版本? 我在这里不理解其他什么吗? 我只发现了有关此问题的以下信息: 使用的Querdydsl错误报告 @Override public SourceVersion getSupportedSourceVersion() { return SourceVersion.latest(); } Oracle博客 ,其中评论员建议支持最新的源版本

什么是Jaxb等效的Text节点值?

我希望转换一个看起来像这样的类…… public class Amenity { public String id; public String value; } 使用JaxB注释将以下XML转换为: value-string-here 有谁知道在value成员变量上使用什么注释来完成此任务? 我到目前为止最接近的是: @XmlRootElement public class Amenity { @XmlAttribute public String id; @XmlElement public String value; } 不幸的是,这种方法不允许我指定value成员变量不应该呈现为自己的标记 。

为什么java注释?

我想问为什么java注释使用了这么多…我知道他们替换了例如jpa中的xml配置,但是为什么这种配置会被使用呢? 考虑这段代码: @Entity class Ent{ // some fields } //… somewhere in the other file far far away class NonEnt{ // whatever here } 现在,当我尝试将它放在持久化上下文中时,使用EntityManager的persist方法,我会在尝试持久化NonEnt实例时遇到运行时错误(更好的是获得编译错误)。 对我来说有明显的解决方案,强制实体实现一些无方法接口,而不是使用@Annotations。 但这在框架设计师中并不流行,这个解决方案的缺点是什么? 谢谢回答…

@PostFilter和@PreFilter如何工作

作为spring注释的新手,我需要澄清下面的代码。 @PostFilter(“hasPermission(filterObject, ‘READ’) or hasRole(‘ROLE_ADMIN’)”) public List getUsers(String orderByInsertionDate, Integer numberDaysToLookBack) throws AppException ; 所以这意味着getUsers返回的用户列表将只包含对调用对象具有完全”READ”访问权限的元素,或者调用对象具有”ROLE_ADMIN”角色。 谢谢。

java annotations:用于覆盖xml文件注释的库

Java有注释,这很好。 但是,一些开发人员认为最好使用xml文件使用元数据来注释代码 – 其他人更喜欢注释,但会使用元数据来覆盖源代码中的注释。 我正在编写一个使用注释的Java框架。 问题是:是否有一种标准方法来定义和解析xml文件中的元数据。 我认为每个使用注释的框架都可以从中受益,但我似乎可以在互联网上找到这样的东西。 我必须滚动自己的xml解析/validation或有人已经做过这样的事情吗?

使用Spring通过构造函数自动assembly集合

我有一个似乎是一个简单的问题,正如标题中所述。 这是我的课程类型: public class Foo { @Autowired public Foo(@Qualifier(“bar”) Set bar) { // … } } 我尝试使用以下spring语境运行: tata titi toto 这无法运行: 没有匹配[java.lang.String]类型的匹配bean,用于依赖[java.lang.String的集合]:期望至少有一个bean,它有资格作为此依赖项的autowire候选者。 依赖注释:{@ org.springframework.beans.factory.annotation.Qualifier(value = bar)} 请注意,如果我将其他参数添加到构造函数中,它可以正常工作。 如果我使用setter注入,它工作正常。 我敢肯定我会错过一些明显的东西……你知道吗?