我是一名java开发人员.我正在使用spring 4.0.1和hibernate 4.2.21.我有一个课程如下:
@Entity
@Inheritance(...)
public abstract class Feature{
@Id
@GeneratedValue
protected Long id;
...
}
Run Code Online (Sandbox Code Playgroud)
现在我有很多课程如下:
Label.java类:
@Entity
public class Label extends Feature{
protected String str;
...
}
Run Code Online (Sandbox Code Playgroud)
Point.java类:
@Entity
public class Point extends Feature{
protected Integer intg;
...
}
Run Code Online (Sandbox Code Playgroud)
我有超过20个从Feature类扩展的Entity 类.有没有办法在没有编写硬代码的情况下动态地将这些类(例如Label和Point)添加到项目中?
更新:
例如,Hibernate从数据库中获取数据,然后根据这些数据创建模型.
我确信有一个object基于请求的存储介质,类似于HttpContext.Current.Session,只在一个请求的生命周期内持续存在,但我不能为我的生活记住它.
这项服务有什么区别?
DLFileEntryLocalServiceUtil
Run Code Online (Sandbox Code Playgroud)
和
DLAppLocalServiceUtil
Run Code Online (Sandbox Code Playgroud)
我们什么时候应该使用另一个?DLAppLocal是Liferay 6.1中的一个新界面,它不鼓励旧的DLFileEntry用于应用程序级代码吗?
我使用jpa实现了数据库查询表。我在数据库的表中添加了新列,并完成了编码。
如果在一段时间后恢复了部署,请考虑我添加了activeFlag列,并且以后需要从我的代码中删除它,那么先前版本的部署是否可以工作?即,它将为表提供一个entityClass,但不包含activeFlag,但数据库将具有该表,并且在生成的实体类中将没有映射到数据库中的activeFalg列的映射。
可以吗
我有一个名为Schoolyear的业务对象,该对象目前带有一个标志枚举:
[Flags]
public enum VisibleDayOfWeek : int
{
None = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
Saturday = 32,
Sunday = 64
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这是没有标识符的值对象,它们不会获得额外的sql表。这也太过分了。
现在,我考虑将这些可见的天数(用户可以配置)保存为数据库中的int值。目前它可以工作,但是在数据库中进行读/写以及将这些值读/写到业务对象中并与该对象进行集成测试是很痛苦的。
当我有一个使用json数据的javascript客户端时,今天早上我想为什么不将我从浏览器直接获取的json数组另存为json字符串在数据库中。因此,我唯一要做的就是在客户端进行json.parse。为了在服务器端进行集成测试,我使用了json库中现有的json.serialize / deserialize方法。
一年中可见的天数仅更改1,2或3次,但不经常更改。每位使用者每5年有5个学年的资料行,可能还不多。可见天数列永远不会通过sql select查询。UI逻辑在客户端完成。
因此,对我来说,将json数组作为json字符串存储在sql数据库中是一个好主意。
您如何看待我的新方法?您是否看到我没有想过的任何负面副作用,以后我可以再次re悔?